1.基本概念
把分配空间和初始化分离
第一阶段:为对象动态分配内存空间
第二阶段:初始化新分配的内存,并且赋值
深入理解:
http://bukkake.iteye.com/blog/945887
2.动机
为对象分配内存的同时,为初始化实例提供了灵活性。
3.规则:
1确保指定初始化方法调用其父类的指定初始化方法的实现
2将self分配至父类的指定初始化方法所返回对象
3如果父类的指定初始化方法返回的值是nil,不要访问实例变量
4.确保已覆盖父类指定的初始化方法,以便调用新的指定初始化方法
5.子类化时,确保每个不是指定初始化方法的新初始化方法调用指定初始化方法。
4.使用初始化分区
在代码中使用内存区时,为实例变量和拥有此实例变量的对象所分配的内存处于同一分区很重要。把对内存的引用放在对象的分区之外,会使分区失去意义。
用于分配对象的分区是由向对象发送-zone消息所决定的。