要使用什么变量名称

时间:2012-06-30 18:38:45

标签: ios iboutlet

在我的头文件中,我有:

IBOutlet UITextField * _userNameOrEmail; 
IBOutlet UITextField * _password; 



@property (retain) IBOutlet UITextField * userNameOrEmail;
@property (retain) IBOutlet UITextField * password;

在我的实施中,我有:

@synthesize userNameOrEmail=_userNameOrEmail, password=_password;

当我进入我的nib文件时,我可以拖动UITextField,它为我提供了_userNameOrEmail和userNameOrEmail的选项

我应该使用哪一个?

2 个答案:

答案 0 :(得分:3)

使用此行

@synthesize userNameOrEmail=_userNameOrEmail

您正在使用支持iVar _userNameOrEmail声明属性userNameOrEmail。你做 NOT 需要做另外这样的声明:

IBOutlet UITextField * _userNameOrEmail; 
IBOutlet UITextField * _password; 

您现在可以通过_userNameOrEmail =或通过self.userNameOrEmail =访问iVar支持。我建议您使用该属性,因为您可以根据需要通过其他类访问该变量,它将为您管理内存,您可以使用点符号....

答案 1 :(得分:0)

目前建议的Objective-C 2.0实践是使用与ivar相同的名称作为属性。您可以选择在@property声明中指定不同的ivar,但默认情况下,属性的合成访问器将访问与该属性同名的ivar,这表明它们是您希望遵循的模式。 / p>

在2012-02-16修订版之后,Apple在“Coding Guidelines for Cocoa”中明确说明了以_为前缀的实例变量的命名约定,原因如此。

  

确保实例变量的名称简明地描述了存储的属性。通常,您不应该直接访问实例变量,而应该使用访问器方法(您可以直接在init和dealloc方法中访问实例变量)。为了帮助发出这个信号,请使用下划线(_)ex -

为实例变量名称加前缀