3

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

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

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

    @property (nonatomic, retain) IBOutlet UIButton *exampleButton;
    

这两种方法有什么区别,我应该在哪里使用每种方法?哪种方法更好,在什么情况下?

4

2 回答 2

3

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

于 2011-07-13T15:20:07.233 回答
0

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

于 2011-07-13T15:17:08.470 回答