Objective-C 编程中的关键技巧:实例变量、对象相等性与类簇模式
1. 实例变量与属性的访问
在处理实例变量和属性时,有一些重要的规则需要遵循。当实例变量在超类中声明时,由于无法直接访问它,所以必须使用 setter 方法。另外,当属性使用懒加载时,必须通过 getter 方法来访问,否则实例变量将无法被初始化。
例如, EOCPerson 类可能有一个属性用于访问代表每个人大脑的复杂对象。如果这个属性不常被访问且设置成本较高,可以在 getter 方法中进行懒加载:
- (EOCBrain*)brain {
if (!_brain) {
_brain = [Brain new];
}
return _brain;
}
如果直接访问实例变量且 getter 方法尚未被调用, brain 将不会被设置,因此必须通过访问器来访问 brain 属性。
要点总结 :
- 内部读取数据时,优先直接通过实例变量;写入数据时,优先通过属性。
- 在初始化器和析构器中,始终直接通过实例变量读写数据。
- 当数据使用懒加载时,有时需要通过属性读取数据。
2. 理解对象相等性
比较对象是否相等是非常有用的。但使用 == 运算符通常不是我们想要的,因为它比较的是指针本身,而不是指针所指向的对象。应该
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



