iOS之《Effective Objective-C 2.0》读书笔记(51)
来源:互联网 发布:网络工程项目 编辑:程序博客网 时间:2024/05/21 06:21
第51条:精简initialize与load的实现代码
1.初始化方法
(1)有时候类必须先执行某些初始化操作,然后才可以正常使用
(2)NSObject类有两种初始化方式load和initialize
2.load方法
(1)对于加入运行期系统中的每个类及分类来说,必定会调用此方法,而且仅调用一次
(2)通常在应用程序启动的时候,就会执行此方法
(3)先调用类里面的,再调用分类里面的
(4)应用程序必须阻塞并等着所有类的load都执行完毕,才能继续
(5)一般不在load里面使用其它类,因为无法判断载入顺序
(6)不遵循继承规则
3.initialize方法
(1)是由运行期系统来调用的,绝不应该通过代码直接调用
(2)是“惰性调用的”,也就是说,只有当程序用到了相关的类时,才会调用
(3)遵循继承规则
(3)用来设置内部数据:如某个全局状态无法在编译期初始化,单例类也可以这样做
static NSMutableArray *kSomeObjects; @implementation People + (void)initialize { if (self == [People class]) { kSomeObjects = [NSMutableArray new]; } }
阅读全文
0 0
- iOS之《Effective Objective-C 2.0》读书笔记(51)
- <iOS读书笔记>之Effective Objective-C 2.0
- iOS之《Effective Objective-C 2.0》读书笔记(1)
- iOS之《Effective Objective-C 2.0》读书笔记(2)
- iOS之《Effective Objective-C 2.0》读书笔记(3)
- iOS之《Effective Objective-C 2.0》读书笔记(4)
- iOS之《Effective Objective-C 2.0》读书笔记(5)
- iOS之《Effective Objective-C 2.0》读书笔记(6)
- iOS之《Effective Objective-C 2.0》读书笔记(7)
- iOS之《Effective Objective-C 2.0》读书笔记(8)
- iOS之《Effective Objective-C 2.0》读书笔记(9)
- iOS之《Effective Objective-C 2.0》读书笔记(10)
- iOS之《Effective Objective-C 2.0》读书笔记(11)
- iOS之《Effective Objective-C 2.0》读书笔记(12)
- iOS之《Effective Objective-C 2.0》读书笔记(13)
- iOS之《Effective Objective-C 2.0》读书笔记(14)
- iOS之《Effective Objective-C 2.0》读书笔记(16)
- iOS之《Effective Objective-C 2.0》读书笔记(17)
- win10修改jdk版本不生效
- springMvc简要总结
- docker入门之安装
- 4、Spring Session-HttpSession整合工作原理
- JSON
- iOS之《Effective Objective-C 2.0》读书笔记(51)
- 自适应网页设计(Responsive Web Design)
- docker入门之镜像
- 移植Openssh到ARM Linux目标板
- datatable linq查询
- java_获取“当前时间”的方法
- intellij 控制台输出乱码
- Python 中的argsort()函数的用法
- Telephoney框架总结