在objective-c的上下文中,实例和成员变量之间有什么区别。我已经看到这两个术语被提到但从未明确描述过。谷歌和堆栈溢出搜索没有立即解释,所以我认为我提出了问题。
答案 0 :(得分:-1)
Member variable是一个更通用的术语。在其他语言中,如C ++或Java,成员变量可以引用instance variable或class variable(静态成员变量)。
Objective C没有类变量,因此实例变量和成员变量是同义词。
作为旁注,在现代Objective C中,实例变量(在Objective C中也称为ivars)应该只能从自动合成的属性创建(如rfj001所述)。
<强>更新强>
仅从自动合成属性创建的实例变量是Apple推荐的现代Objective C实践。
在尽可能多的地方使用属性而不是实例变量提供了许多好处
Programming with Objective-C: Encapsulating Data
最佳做法是在需要跟踪值或其他对象时随时在对象上使用属性。
与所有编程规则一样,有时您需要违反此规则并直接声明ivar。然而,这应该是罕见的例外,而不是规则。