Effective Objective-C 2.0 编写高质量iOS与OS X代码 在对象内部尽量直接访问实例变量
2014-03-27 11:22
459 查看
1. 建议在读取实例变量的时候采用直接访问的形式,而在设置实例变量的时候通过属性来做。
直接访问和存取方法的区别:
① 由于不经过OC的“方法派发”(method dispatch)步骤。所以直接访问实例变量的速度当然比较快。
这种情况下,编译器所生成的代码会直接访问保存对象实例变量的那块内存。
② 直接访问实例变量时,不会调用其“设置方法”;
③ 直接访问实例变量时,不会触发“键值观测”(key-Value Observing,KVO)通知。
④ 通过属性来访问有助于排查与之相关的错误,因为可以给获取器和设置器中新增断点,监控该属性的调用者及其访问时机。
2. 在初始化方法(或dealloc)中,总是直接访问实例变量。因为子类可能会“覆写”(override)设置方法。
3. 惰性初始化(lazy initialization)
这种情况侠必须通过获取器来访问属性,否则实例变量就永远不会初始化。
- (id)brain {
if(!_brain){
_brain = [Brain new];
}
return _brain;
}
摘取自:《Effective
Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》,详细请购买书籍,支持作者及译者。
直接访问和存取方法的区别:
① 由于不经过OC的“方法派发”(method dispatch)步骤。所以直接访问实例变量的速度当然比较快。
这种情况下,编译器所生成的代码会直接访问保存对象实例变量的那块内存。
② 直接访问实例变量时,不会调用其“设置方法”;
③ 直接访问实例变量时,不会触发“键值观测”(key-Value Observing,KVO)通知。
④ 通过属性来访问有助于排查与之相关的错误,因为可以给获取器和设置器中新增断点,监控该属性的调用者及其访问时机。
2. 在初始化方法(或dealloc)中,总是直接访问实例变量。因为子类可能会“覆写”(override)设置方法。
3. 惰性初始化(lazy initialization)
这种情况侠必须通过获取器来访问属性,否则实例变量就永远不会初始化。
- (id)brain {
if(!_brain){
_brain = [Brain new];
}
return _brain;
}
摘取自:《Effective
Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》,详细请购买书籍,支持作者及译者。
相关文章推荐
- Effective Objective-C 2.0 — 第七条:在对象内部尽量直接访问实例变量
- 在对象内部尽量直接访问实例变量 --Effictive Objective-C 抄书
- Effective Objective-C 2.0 编写高质量iOS与OS X代码 在既有类中使用关联对象存放自定义数据
- Effetive Objective - C 1.Objective 7.在对象内部尽量直接访问实例变量
- Effective Objective-C 2.0 编写高质量iOS与OS X代码 对象等同性
- Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法 对象属性 property
- Effective Objective-C 2.0 编写高质量iOS与OS X代码 在既有类中使用关联对象存放自定义数据
- Effective OC 2.0读书笔记 第7条:在对象内部尽量直接访问实例变量
- Effective Objective-C 2.0 第7条:在对象内部尽量访问实例变量
- <<Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法>>笔记-对象、消息、运行期
- Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法 对象属性 property
- Effective Object_C 2.0 编写高质量ios与OS X代码的52个有效方法之一
- 《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(上)
- 编写高质量iOS与OS X代码的52个有效方-Effective Objective-C 2.0阅读笔记
- assign copy retain weak strong 区别【读Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法】
- 阅读《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》总结
- 《Effective Objective C 2.0 编写高质量iOS与OS X代码的52个有效方法》读书笔记
- 一篇文章拿下《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》
- 《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(下)
- Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法(一)