iOS-《编写高质量代码》笔记-第八章 定制init...和de
2017-12-23 本文已影响10人
道道明明白白
建议50:了解对象的alloc 和 init...
alloc 分配过程不仅进行对象的内存分配,还初始化对象的两个小而非常重要的属性,即它的isa实例变量和保持数。
建议51:直接访问实例变量的init...方法
父类可能无法正确初始化对象,并返回nil,故要经常检查,确保self不为nil,然后再执行自己的初始化。
建议52:初始化方法必须以init字母开头
如果一个对象没有实现自己的初始化方法,Cocoa就会调用其最近的祖先对象的方法。
建议53:从init...方法得到的对象可能是不想要的
在创建对象时,通常应该在对象使用前检查初始化返回的对象是否为nil。
一旦对象被初始化了,就不应该再进行初始化了,否则,容易产生抛出。
建议54:实现init...方法的唯一性或者指定性并非“不可能”
调用super的初始化方法可以确保继承链上方的类定义的实例变量都率先得到初始化。
建议55:init... 方法有“轻重级别”之分
进行对象的初始化,要注意轻重之分。