可能重复:
Prefixing property names with an underscore in Objective C
在合成属性时,我发现有人在做:
@synthesize myVar = _myVar;
什么是“_myVar”,这与简单的做法不同:
@synthesize myVar;
最后,当我更喜欢第一个解决方案到最后一个?
由于 卢卡
答案 0 :(得分:2)
您的示例中真正的_myVar
是支持您的财产的ivar的名称。默认情况下,合成属性时,会为您创建同名的ivar。因此,您可以使用您的属性通过setter / getter或_myVar
设置您的ivar以直接访问您的变量(当然绕过KVC / KVO)。
修改强> 来自Apple的Coding Guidelines for Cocoa
...在许多情况下,当您使用声明的属性时,您也会合成 相应的实例变量。
确保实例变量的名称简明扼要地描述了 存储的属性。通常,您不应该访问实例变量 直接,你应该使用访问器方法(你可以访问 实例变量直接在init和dealloc方法中)。为了帮助 发出信号,用下划线(_)...
作为前缀实例变量名
答案 1 :(得分:-1)
如果你想在setter和getter中使用一些现有的数据成员,那么就可以这样指定。
e.g。 @synthesize personName = pName;
根据我们的方便,我们可以使用pName而不是personName。
答案 2 :(得分:-1)
它是私有变量的名称。
在另一篇文章中回答我的回答:answer