学习ios一段时间了,决定开始写点东西,一求巩固,温故而知新,二求梳理,理清思路练好文笔。不求闻达与江湖,但求万千法门了然于心。
iOS的study roadmap主要包含以下几个方面:
1. Object-C;
2. Swift;
3. Cocoa开发框架(Foundation/Appkit) for Mac OS, Cocoa Touch开发框架(Foundation/UiKit) for iOS(iPad OS/iPhone OS/...).
4. Special Area(eg. iOS game).
具体的学习路线图网上有很多,这里就不多说了。最近的关注点还是集中在OC。
OC与C/C++:
Object C是C的衍生语言,可以看做是C的一个超集. 相对于C,OC增加了更多的数据类型,更多设计模式的应用。
运行机制:C面向过程,基于函数控制各类事务流程的处理,属于静态语言。OC面向对象,基于消息完成对象之间的通信,既具有静态特性(封装,继承,多台),又具有动态特性.(具体可了解OC的runtime机制)。
头文件的引用:C/C++ 的include, OC的import
数据类型:OC支持C里面的大多数数据类型(int,bool),但是C里面char *--->OC里的NSString. 此外OC里面多了id类型,可以代表所有类型。
类:OC/C++都具备类的声明和实现,都有共有,私有,受保护三种方式。但OC有类方法(+fun)和对象方法(-fun)之分,类方法被类调用,对象方法被类的实例调用,具体格式:[类 类方法] or [实例 实例方法]. "[ ]"just keep the same format with smalltalk. OC 用self指向自己,C++ 用this指向自己。
关于更详细的OC与C/C++介绍可以参考:http://link.zhihu.com/?target=http%3A//chachatelier.fr/programmation/fichiers/cpp-objc-en.pdf
Class in Foundation:
1. NSObject: 所有对象的根对象: NSData, NSDictionary,NSArray,NSDate,NSValue,NSString,NSCache,NSFormatter...都继承于NSObject(OC只支持单继承).
2. Value:NSCalendar,NSCache,NSData,NSMutableData:NSData,NSDate,NSCalendarDate:NSDate,NSValue,NSNumber:NSValue,NSDecimalNumber:NSNumber:NSValue,.....
3. XML:NSXMLNode,NSXMLParser.
4.String:NSAttributedString(can use addAttribute method to change the color,font...),NSMutableAttributedString:NSAttributedString, NSString,NSMutableString:NSString,NSFormatter,NSDateFormatter:NSFormatter,NSNumberFormatter:NSFormatter......
5.Collections:NSArray, NSMutable:NSArray, NSDictionary, NSMutableDictionary:NSDictionary,NSIndexPath,NSHashTable,NSEnumerator(abstract class),NSSet...
6.Predicates:NSExpression,NSPredicate...
7.OS service:NSRunloop,NSTimer,NSUserDefaults,NSError,NSHost,NSNetService...
8.File System: NSBundle,NSFileManager,NSFileHandle,NSStream...
9.URL:NSURL,NSURLRequest,NSURLResponse,NSURLCache,NSURLProtocol,NSURLConnection...
10.Interprocess Communication:NSPipe,NSPort...
11.Locking/Threading:NSlock,NSTask,NSOperation...
12.Notification:NSNotification,NSNotificationCenter,NSNotificationQueue..
13.Archiving and Serialization:NSCoder,NSArchiver:NSCoder,NSPropertyListSerialization...
14.OC language service:NSAssertionHandler,NSAutoreleasePool,NSException,NSInvocation...
15.Script: NSScriptCommand,NSAppleScript,NSAppleEventDescriptor,NSConnection...
16.NSProxy: 另一个根类,abstract class.
更多了解参考:http://www.cnblogs.com/kenshincui/p/3885689.html