实例变量Vs.成员变量

时间:2015-08-06 03:41:16

标签: objective-c variables

在objective-c的上下文中,实例和成员变量之间有什么区别。我已经看到这两个术语被提到但从未明确描述过。谷歌和堆栈溢出搜索没有立即解释,所以我认为我提出了问题。

1 个答案:

答案 0 :(得分:-1)

Member variable是一个更通用的术语。在其他语言中,如C ++或Java,成员变量可以引用instance variableclass variable(静态成员变量)。

Objective C没有类变量,因此实例变量和成员变量是同义词。

作为旁注,在现代Objective C中,实例变量(在Objective C中也称为ivars)应该只能从自动合成的属性创建(如rfj001所述)。

<强>更新

仅从自动合成属性创建的实例变量是Apple推荐的现代Objective C实践。

Adopting Modern Objective-C

  

在尽可能多的地方使用属性而不是实例变量提供了许多好处

Programming with Objective-C: Encapsulating Data

  

最佳做法是在需要跟踪值或其他对象时随时在对象上使用属性。

与所有编程规则一样,有时您需要违反此规则并直接声明ivar。然而,这应该是罕见的例外,而不是规则。