现在随着新Xcode的发布,已经说过属性会自动合成,实际上只要你使用'_'
前缀就可以访问它们而无需合成。但我最近发现Xcode允许我以另一种方式访问这些属性 - 使用'self.*'
前缀(其中*是属性的名称)。
这是对的吗?我应该用吗?它会伤害我的代码吗?
谢谢你。
答案 0 :(得分:3)
使用_yourProperty
访问实例变量,self.yourProperty
为其getter / setter。只要您确定没有经过成本化的getter / setter,两者都是相同的(对getter / setter的性能损失非常小)。但是,一般情况下,您应该使用getter / setter方法(getter / setter除外),以防您以后更改代码。
修改强>
@Vanthel:下划线是纯粹的约定。如果没有@synthesize
(或@synthesize foo
),编译器会为属性foo
生成变量_foo
。但是,通过@synthesize foo = my_bar
,您可以为my_bar
的访问者分配变量foo
。