现在随着新 Xcode 的发布,据说属性会自动合成,而且实际上只要您使用'_'
前缀,它们就可以在不合成的情况下访问。但我最近发现 Xcode 允许我以另一种方式访问这些属性 - 使用'self.*'
前缀(其中 * 是属性的名称)。
它是否正确?我应该使用它吗?它会损害我的代码吗?
谢谢。
现在随着新 Xcode 的发布,据说属性会自动合成,而且实际上只要您使用'_'
前缀,它们就可以在不合成的情况下访问。但我最近发现 Xcode 允许我以另一种方式访问这些属性 - 使用'self.*'
前缀(其中 * 是属性的名称)。
它是否正确?我应该使用它吗?它会损害我的代码吗?
谢谢。
使用它的 getter/setter_yourProperty
访问实例变量。self.yourProperty
只要您确定没有定制的 getter/setter,两者都是相同的(getter/setter 的性能损失非常小)。但是,一般来说,您应该使用 getter/setter 方法(除了 getter/setter 本身),以防您以后更改代码。
编辑:
@Vanthel:下划线是纯粹的约定。没有@synthesize
(或有@synthesize foo
),编译器为一个属性生成foo
一个变量_foo
。但是,通过您分配要由 的访问者访问@synthesize foo = my_bar
的变量。my_bar
foo