设计模式 - 两步创建
2016-04-27 本文已影响10人
逸飞u
概念:
步骤一:对象分配内存 例如: alloc
步骤二:初始化 例如: init
alloc做的事情:发送消息获得一个实例
- 对象的 retain(保持)数设置为1
- 分配对象的 isa 指针指向类对象
- 把所有对象的实例变量初始化为0(nil)
初始化对象
格式:
initWith...
步骤:
- 先要调用父类的初始化方法(以保证继承链中父类的实例变量得到正确的赋值)
- 检查父类初始化返回对象,如果是 nil 则初始化失败,也返回 nil
- 在初始化实例变量时,如果他们是其他对象的应用,不要死进行 retain 和 copy
- 如果返回一个已存在的对象,那实现释放新分配的对象
- 初始化失败,返回 nil
- 如果没问题,返回 self, 初始化完成