-1

我是 iOS 开发的初学者,我目前正在在线观看几门课程,这些课程解释了后台获取和设置过程的整个过程。

有人认为我在初始化变量时应该使用:

[self setX:1];

在其余代码中访问这个变量我应该使用:

_x 

代替 :

[self x]

其原因与引用计数有关,但现在在课程中,该人告诉我除了自动生成的 getter 和 setter 之外不要使用下划线?

我知道点符号。但具体的问题是:“我可以用 getter 和 setter 调用变量而不用担心内存泄漏(我使用的是 ARC)而不是下划线。

4

2 回答 2

2

该属性的底层实例变量实际上是 _x。这就是自动合成属性的工作原理。

但是,您应该考虑使用访问器来设置属性(使用 self.x = 代替)。有关在目标 c 中使用 ivars 与属性的原因的更多信息,请参阅此链接

于 2013-09-05T08:59:41.263 回答
1

您的 ios 版本是 ios6,这就是为什么它会直接获取 _x。

当您定义任何属性时

@Property int x;

ios6 使用 _x 自动合成;所以不用担心你可以使用_x。

于 2013-09-05T09:01:56.053 回答