OC细节——“标准初始化模板”
来源:互联网 发布:疯狂java讲义第4版pdf 编辑:程序博客网 时间:2024/05/16 02:18
初始化的一般格式:一个标准初始化“模板”
-(instancetype)init{ //先对继承链上所有的类对象进行初始化 //类似对一个对象存储空间内的父类部分先进行初始化。 self = [super init]; //当本对象已经分配好空间并初始化完成时 if (self) {//加入适当的初始化代码 //Initialization code here. } return self;}
- 书上对[super init]的解释:
先调用父类对象初始化方法,保证本对象中所有继承的实例变量都被初始化(填0或初始化为你自己的代码),当使用init时,它有可能会改变对象在内存中的位置,所以需要将这条语句执行的结果赋值给self。只有初始化不成功时,才会返回nil。自己的代码中可以加入你自己的类中的实例变量的分配和初始化过程。
上面代码中的返回类型 instancetype 是指:当init方法执行完成后,返回的类型和init方法初始化的对象类型相同。过去的时候这里是使用的 id,但是id有个弱点,继承的初始化方法不能显式定义特定类型的返回值。
当自己的类中有不止一个初始化方法时,有一个方法被称为:designated initializer(指定初始化),而其他的初始化方法都应该使用它。
总的来说,这个指定初始化方法应该是类中的最复杂的初始化方法(通常包含最多的参数)。使用指定初始化可以让主要的初始化过程都集中于单个方法中。
继承这个类后,子类可以覆盖这个指定的初始化方法来提供对更多实例变量的初始化支持。
0 0
- OC细节——“标准初始化模板”
- 标准模板库(STL) map —— 初始化问题
- 关注C++细节——动态生成对象初始化细节
- oc——类——初始化
- Bootstrap——标准模板
- 关注C++细节——标准库string类型
- 关注C++细节——标准IO库
- 魔鬼存在于细节—标准库函数fgetc()
- STL——标准模板库
- C++标准模板库(STL)—简介
- C++标准模板库(STL)—简介
- C++标准模板库(STL)—简介
- C++标准模板库(STL)—简介
- 模板应用——零初始化
- oc-初始化
- 黑马程序员——OC基础--@property在开发中需要注意的使用细节
- OC语言细节总结
- OC语法细节
- android限制文本长度
- C语言宏的定义及使用
- HttpServlet
- 使用MyBatis Generator自动创建代码
- java5 ReadWriteLock用法--读写锁实现
- OC细节——“标准初始化模板”
- Android中Handler引起的内存泄露
- java中什么是构造方法及其作用
- CodeForces 629A Far Relative’s Birthday Cake
- oracle中带有特殊符号的模糊查询
- UsageStatsManager.queryUsageStats的参数interval
- iOS开发---给数字添加删除线
- SearchRequestBuilder常用方法说明
- java5 Lock用法