我一直在运行一些教程,而且经常会看到类似的东西。
中的.h
UIButton *_loginButton;
@property (retain) IBOutlet UIButton *loginButton;
然后在.m中它会像......
@synthesize loginButton = _loginButton;
所以我的问题是先做一个_有什么好处呢?或者为什么这是常见做法?最后我应该这样做吗?
答案 0 :(得分:4)
人们有时会使用它来表示私有实例变量,或者将实例变量与属性分开。您有时会看到带有用于私有函数或方法的前导下划线的名称。据我所知,Apple保留该惯例供自己使用,并建议您不要使用它以避免名称冲突。出于这个原因,您有时也会看到具有尾随下划线而不是前导下划线的名称,即foo_
而不是_foo
。
答案 1 :(得分:0)
因为它是一个局部变量。
有些公司有内部要求用_
编写局部变量答案 2 :(得分:0)
我不知道这个版本是从哪个开始的,但我注意到如果您只是将它表示为属性,则根本不需要实际的变量声明。
// Interface
@property (retain) IBOutlet UIButton *loginButton;
// Implementation
@synthesize loginButton
然后你可以使用该属性:
loginButton = (....)
self.loginButton = (...)
[self setLoginButton:(...)]
etc...
现在,无论这种或那种方式是正确的方式取决于个人品味。对于类似这样的事情,它通常始终属于“保持一致并遵循您(独立开发人员)或您的公司/团队/团队的任何编码标准”类别。