【问题标题】:Help: Instance Variables & Properties [iPhone]帮助:实例变量和属性 [iPhone]
【发布时间】:2010-06-13 00:30:29
【问题描述】:

在这样的情况下:

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

我了解“UITextField *nameField;”是一个实例变量,“@property ...”是一个属性。但是这些单独的东西有什么作用呢?

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

【问题讨论】:

    标签: iphone variables properties instance


    【解决方案1】:

    实例变量是实际变量,而属性等价于

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 2010-10-17
      • 2011-09-01
      • 2010-12-05
      • 1970-01-01
      相关资源
      最近更新 更多