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。
在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。
相关文章推荐
- 成员变量、局部变量和全局变量
- Python---serial
- Python---class and iter
- [IOS]SQLite3常用语句
- Lind.DDD.Repositories.Redis层介绍
- Python---serial
- Python---class and iter
- OSSEC - Agent端查看命令
- 【C#】向导式窗体
- 前端框架
- NOIP2006能量项链
- 索引器
- 【Modern OpenGL】转换 Transformations
- Python:映像和集合类型
- Python---generator
- Python---os
- Python---generator
- Python---os
- 运用ThreadLocal解决并发
- android studio新手使用攻略