Syntax help, why put '_' before variables?
我一直在运行一些教程,经常会看到类似的东西。
在H
1 2 3 | UIButton *_loginButton; @property (retain) IBOutlet UIButton *loginButton; |
然后在.m中它会像…
1 | @synthesize loginButton = _loginButton; |
所以我的问题是,把一个放在前面有什么好处?或者为什么这是常见的做法?最后,我也应该这样做吗?
这是一种约定,人们有时使用它来表示私有实例变量,或者从属性中分离实例变量。有时,您会看到名称的前导下划线用于专用函数或方法。据我所知,苹果公司将该约定保留给自己使用,并建议您不要使用它以避免名称冲突。出于这个原因,您有时也会看到带有尾随下划线而不是前导下划线的名称,即
我不知道这是从哪个版本开始的,但是我注意到,如果您只想将它表示为一个属性,那么根本不需要有一个实际的变量声明。
1 2 3 4 5 | // Interface @property (retain) IBOutlet UIButton *loginButton; // Implementation @synthesize loginButton |
然后你就可以使用这个属性:
1 2 3 4 | loginButton = (....) self.loginButton = (...) [self setLoginButton:(...)] etc... |
现在,无论是一种方式还是另一种方式,都取决于个人的品味。对于类似的事情,它通常属于"保持一致并遵循由您(唯一开发人员)或您的公司/团队/团队制定的任何编码标准"类别。
因为它是一个局部变量。
有些公司有内部要求用_