语法帮助,为什么在变量之前加上'_'?

时间:2012-01-19 13:56:46

标签: objective-c ios xcode

我一直在运行一些教程,而且经常会看到类似的东西。

中的.h

UIButton *_loginButton;

@property (retain) IBOutlet UIButton *loginButton;

然后在.m中它会像......

@synthesize loginButton = _loginButton;

所以我的问题是先做一个_有什么好处呢?或者为什么这是常见做法?最后我应该这样做吗?

3 个答案:

答案 0 :(得分:4)

人们有时会使用它来表示私有实例变量,或者将实例变量与属性分开。您有时会看到带有用于私有函数或方法的前导下划线的名称。据我所知,Apple保留该惯例供自己使用,并建议您不要使用它以避免名称冲突。出于这个原因,您有时也会看到具有尾随下划线而不是前导下划线的名称,即foo_而不是_foo

答案 1 :(得分:0)

因为它是一个局部变量。

有些公司有内部要求用_

编写局部变量

答案 2 :(得分:0)

我不知道这个版本是从哪个开始的,但我注意到如果您只是将它表示为属性,则根本不需要实际的变量声明。

// Interface
@property (retain) IBOutlet UIButton *loginButton;

// Implementation
@synthesize loginButton

然后你可以使用该属性:

loginButton = (....)
self.loginButton = (...)
[self setLoginButton:(...)]
etc...

现在,无论这种或那种方式是正确的方式取决于个人品味。对于类似这样的事情,它通常始终属于“保持一致并遵循您(独立开发人员)或您的公司/团队/团队的任何编码标准”类别。