该书最令我受益匪浅的是OC对象间互动及关系,涉及到的具体实现,填补了一直以来单纯的做开发而不懂具体过程这一空白部分,也看到了要写出优秀的易于扩展的代码,这条路要学习的东西还很多。
- 为减少编译时间,把只需要类名不需要细节的类写为@class
- 为简洁,安全(数组插入nil时易于查错):多用字面量快速创建对象 例@1
- 多用类型常量代替#define:
例:使用static NSString * const account = @"account" 来代替:
#define XMGAccount @"account" .
注意:不要用预处理定义常量,在.m中使用static const 定义只在实现文件(编译单元内)中可见的常量。
[const,static,extern)的使用在文底,见附1]
读取实例变量采用直接访问,设置实例变量的时候通过属性来做。
理解对象等同性: == 和 isEqual 以及 isEqualToString 的不同
每个OC对象实例都是指向某块内存数据的指针,所以类型后面加‘*’,而id类型本身就是指针。没有*的实例存放在栈区
类对象是单例,可以精确判断对象是否为某类实例的方法为: if ([object class] == [某个类 class]),尽量使用类型信息查询方法(isMemberOfClass对象是否为某个特定类的实例)(isKindOfClass对象是或否为某类或其派生类的实例)来确