您的位置:首页 > 其它

OC基础---初始化方法

2015-12-28 20:10 106 查看
初始化方法
在OC中创建对象分为两部:开辟空间,初始化
初始化的主要作用:为某些实例变量赋值,而且初始化方法在整个对象生命周期只调用一次。
学习继承之前,进行初始化,并没有self= [super init]字样,我们需要为实例变量逐一赋值; 学习继承之后,父类中声明了公共实例变量。作为父类,有自己的初始化方法,为这些公共实例变量赋值。子类定义了除了父类中的公共实例变量之外的实例变量。 在自身的初始化方法中,优先向super发送init方法,初始化公共变量。初始化成功后,在初始化自身特有的变量,从而完成所有的实例变量的初始化。
完整的初始化方法:
-(void)init{
self = [super init];//给super发送init消息:即执 行父类中的init方法
if(self)
{
初始化设置; //子类自己的初始化设置
}
return self; //初始化完成,返回对象本身
}

其中的super是编译器指令,并非对对象;
作用:给super发消息,会执行父类中的实现方法。
子类可以重写父类的方法,即子类具有自己的实现,又有父类继承来的实现;如果想使用父类的实现,使用duper;
例如:



想修改其中的name,初始化方法如下



初始化过程
1、自己的初始化方法中,优先调用父类的初始化方法
2、父类的初始化方法中在调用父类的初始化方法,依次往上调用
3、处于最上层的初始化完成后,回到第二层初始化方法中,完成第二层的初始化
4、第二层的初始化完成之后,再返回到第三层的初始化方法中,依次执行初始化。直到本类完成初始化方法。

初始化方法的特征
1、初始化方法是“-”方法
2、返回值是‘id’或者instancetype类型
3、 以init开头
4、可以带0到多个参数(也就是咱们的自定义初始化方法)
5、内部实现:先执行super的初始化方法,再初始化自身变量,最后return self。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: