我们不应该再@synthesize了吗?

时间:2012-08-27 07:13:25

标签: objective-c ios xcode

现在随着新Xcode的发布,已经说过属性会自动合成,实际上只要你使用'_'前缀就可以访问它们而无需合成。但我最近发现Xcode允许我以另一种方式访问​​这些属性 - 使用'self.*'前缀(其中*是属性的名称)。

这是对的吗?我应该用吗?它会伤害我的代码吗?

谢谢你。

1 个答案:

答案 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