Objective-C的教程已经看过了。
内容大概有:[Objective-C基础语法(if/else/switch/for...),关键字,运算符],[面向对象(封装/继承/多态)],[Foundation框架常用类],[内存管理],[协议和代理设计模式],[IO],[拷贝/归档/NSUserDefault/单例设计模式],[KVC/KVO/谓词/通知(观察者设计模式)]。
1.[Objective-C基础语法(if/else/switch/for...),关键字,运算符,基本数据类型]这个大家都了解,毕竟楼主多多少少有过开发经验。
2.[面向对象(封装/继承/多态)],这个也了解,高级开发语言都是面向对象开发的。不过Objective-C中继承是单继承的,不支持多继承。
3.[Foundation框架常用类],说的都是指针数据类型,有NSNumber/NSValue,NSString,NSArray,NSDictionary,NSSet等等
4.[内存管理],说的是Objective-C中指针数据类型对象的生命周期,需要如何给指针数据类型对象开辟内存空间,用完后如何释放内存。其中有retain,release,autorelease等关键字,还有对象所有权,自动释放池,ARC等概念。
5.[协议和代理设计模式],协议包含两种:
1.非正式的protocol:Category(类目);可以给指定类添加很多方法,可以将方法分门别类;非正式protocol实现方法是可选的
2.正式的Protocol,通过@interface声明,有要求子类实现方法,可以强制实现(@required)或者可选(@optional)两种;可以在很大程度上弥补OC单继承带来的一些问题。
代理设计模式:一个对象提供机会给另一个对象中的行为发生变化时作出反映。
例子:对象有石子,水;将石子(对象1)投入水中(行为1),水面(对象二)泛起波纹(行为二)。
代理设计模式中,对象是一对一的关系。
6.[IO],通过NSFileHandle和NSFileManager这两个类操作的文件[添加,删除,修改,复制];
NSFileHandle主要对文件内容进行[读取]和[写入]操作
NSFileManager是一个单例类,可以创建,复制,删除文件。
经典案例:下载,断点续传。
7.[拷贝/归档/NSUserDefault/单例设计模式]
拷贝:复制一个对象作为副本,会开辟一块新内存(堆区内存),源对象和副本对象是两块不同区域。
需要实现<NSCopying>或<NSMutableCopying>协议
Foundation框架的常用类都可以拷贝,实现了拷贝协议,自定义类需要实现拷贝协议。
深拷贝:拷贝整个对象,包括对象内部的变量实例。
浅拷贝:只拷贝对象,不拷贝对象内部的变量实例,只是通过retain的方式获得了原对象内部变量实例的对像所有权。
归档:通过NSArray,NSDictionary等对象作为数据源,NSArray,NSDictionary中可以放入自定义对象,将输入序列化到磁盘中,会有加密措施;然后可以将归档数据从磁盘文件中读取出来。
NSUserDefault:是一个单例类,可以将数据序列化到本底磁盘,通过键值对存取数据。
单例设计模式:这个有过编程经验的淫都了解。单例即一个实例的意思,就是说不论你怎么用这个类,这个都只会存在一个实例; 为了让对象只存在一个实例[不能让实例消亡],在编写单例类的过程中需要重写release,autorelease,retain等函数。
8.[KVC/KVO/谓词/通知(观察者设计模式)]
KVC:键值编码[keyValueCodeding]的意思,通过键值编码函数可以访问类对象的[实例属性]。
KVO:键值观察者[keyValueObserver]的意思,一种新的设计模式[观察者模式],观察的对象是类对象的实例属性,通过监控类对象的实例属性值的变化透过观察者机制进行操作!
谓词:我的理解是数据查询的条件,都是一些SQL关键字的查询条件组成。
通知:类与类之间进行通行的一种方式,使用的是[观察者设计模式]。