我应该直接在类实现中访问Ivars吗?

时间:2009-12-19 16:52:39

标签: objective-c properties instance-variables accessor

我已经暂时搁置了这个问题,但我想知道人们如何直接从Objective-C类实现中访问实例变量?

使用访问器和mutator使很多事情变得简单,但对于简单的事情,直接访问实例变量是不是很糟糕?私有实例变量的最佳实践是不同的吗?

2 个答案:

答案 0 :(得分:2)

如果您始终使用访问器方法,那么可以确保正确处理内存管理,尤其是在合成这些方法的情况下。话虽这么说,如果我们谈论访问原始类型的ivars,在实例方法的实现中直接使用它们不会有任何损害。

答案 1 :(得分:1)

对不起,但我不同意总是使用类中的属性来访问ivars。

通常如果: 1.你的财产不是原子的,而且 2.你的属性没有复杂的逻辑(也就是说,你只有一个综合属性) - 那么就没有必要使用属性了。只需直接使用ivar。

如果你的属性是原子的,那么显然你必须同时使用getter和setter。然而,总是使用二传手...非常方便...