读《Effective Objective-C 2.0》

1、OC语言的起源
  • 对象所占内存空间是分配在“堆空间”中,绝不会分配在“栈”上,不能再栈中分配OC对象,所以不能有NSString stackStr这样的写法。
  • OC是为C语言添加了面向对象的特性,是其超集。OC使用动态绑定的消息结构,也就是说,在运行时才会检查对象类型。接收一条消息之后,究竟应执行何种代码,由运行期环境而非编译器来决定。
2、在类的头文件中,尽量少引用其他头文件(向前声明)
3、多用字面量语法,少用与之等价的方法

读《Effective Objective-C 2.0》

4、多用类型常量,少用#define预处理指令

例如:

static NSString * const typeStr = @"something";
static const NSTimeInterval kDuration = 0.3;

读《Effective Objective-C 2.0》

5、用枚举表示状态、选项、状态码

读《Effective Objective-C 2.0》

6、理解“属性”

读《Effective Objective-C 2.0》

7、在对象内部尽量直接访问实例变量
8、对象等同性

读《Effective Objective-C 2.0》

9、以“类族模式”隐藏实现细节

读《Effective Objective-C 2.0》

10、在既有类中使用关联对象存放自定义数据

读《Effective Objective-C 2.0》
读《Effective Objective-C 2.0》

16、提供“全能初始化方法”

读《Effective Objective-C 2.0》

17、实现description方法

读《Effective Objective-C 2.0》

20、为私有方法添加前缀

读《Effective Objective-C 2.0》

21、NSCopy协议

读《Effective Objective-C 2.0》

29、理解引用计数

读《Effective Objective-C 2.0》

31、在dealloc里只释放引用和移除监听

读《Effective Objective-C 2.0》