帮助:实例变量&属性[iPhone]

时间:2010-06-13 00:30:29

标签: iphone variables properties instance

在这样的事情中:

@interface Control_FunViewController : UIViewController {
    UITextField *nameField;
    UITextField *numberField;
}
@property (nonatomic, retain) IBOutlet UITextField *nameField;
@property (nonatomic, retain) IBOutlet UITextField *numberField;

我理解“UITextField * nameField;”是一个实例变量,“@ property ...”是一个属性。但是这些个人的事情做了什么?

我想我真正要问的是如何在实现文件中使用该属性(.m)

1 个答案:

答案 0 :(得分:2)

实例变量是实际变量,而属性相当于

- (UITextField *)nameField;
- (void)setNameField:(UITextField *)newTextField;

并且完全可选。当@synthesize变量时,编译器也会使用它们来准确理解你想要的内容。基本上,属性和相应的@synthesize(或自定义实现)允许OTHER类访问变量,并且完全是可选的。事实上,根据标准的面向对象的封装原则,通常建议不要使用属性,除非您特别希望外部类使用它们。但是,您仍然需要Interface Builder来识别UITextFields(可能),这就是为什么我们通常将IBOutlet装饰器放在ivar声明之前,而不是属性。