IBOutlet作为属性或作为变量有什么区别?

时间:2011-07-13 15:08:46

标签: objective-c properties iboutlet

声明IBOutlet有两种不同的方法。

  1. 在@interface部分作为变量:

    IBOutlet UIButton *exampleButton;
    
  2. 在曲线括号下方但在.h文件的@end之前作为属性:

    @property (nonatomic, retain) IBOutlet UIButton *exampleButton;
    
  3. 这两种方法有什么区别,我应该在哪里使用?哪种方法更好,在什么情况下?

2 个答案:

答案 0 :(得分:3)

根据我的经验,任何一个都可以正常工作。什么是行不通的是声明实例变量和属性“IBOutlet” - 这似乎真的混淆了事情。如果由于某种原因您想避免提供对插座的公共访问,您可以将其声明为实例变量,而不是创建属性。另一方面,现在运行时将为您合成实例变量,许多人只声明属性并跳过显式实例变量声明;在这种情况下,您显然会将该属性声明为IBOutlet。

答案 1 :(得分:0)

@property结合@synthesize设置对象的getter和setter方法。您应该至少在界面中定义它,如果您决定从中创建一个属性,那么您还必须将它合成为.m文件。