目标C – 合成属性
可能重复:
在Objective C中用下划线前缀属性名称
当综合属性,我发现有人在做:
@synthesize myVar = _myVar;
什么是“_myVar”,简单的做法与之不同:
@synthesize myVar;
最后,当我更喜欢第一个解决scheme的最后一个?
谢谢卢卡
在你的例子中,真正的_myVar
是支持你财产的伊娃的名字。 默认情况下,当你合成一个属性时,为你创build一个同名的伊娃。 所以,你可以通过setter / getter或_myVar
来使用你的属性来设置你的ivar直接访问你的variables(当然绕过KVC / KVO)。
编辑:从苹果的cocoa编码指南
…在很多情况下,当你使用一个声明的属性时,你也可以合成一个对应的实例variables。
确保实例variables的名称简洁地描述存储的属性。 通常,您不应该直接访问实例variables,而应该使用访问器方法(您可以直接在init和dealloc方法中访问实例variables)。 为了帮助发出信号,使用下划线(_)前缀实例variables名称…
如果你想在setter和getter中使用一些现有的数据成员,那么可以像这样指定它。
例如@synthesize personName = pName;
通过这个我们可以根据我们的方便使用pName而不是personName。
它是私有variables的名称。
在另一个post上回答我的答案: 答案