我是否需要为IBOutlet *属性声明私有变量?

时间:2010-10-12 16:08:04

标签: iphone xcode ios4

假设我有一个带有一个UITableView属性的简单视图控制器:

@interface MyViewController : UIViewController {
    UITableView *tv;  // <-- DO I NEED THIS??
}
@property (nonatomic, retain) IBOutlet UITableView *tv;
@end

我真的需要声明UITableView * tv吗?我发现,即使我没有声明它(并简单地@synthesize属性),一切正常。然而,许多代码示例显式声明了变量。我不确定宣布它的好处(或者不宣布它的危害)是什么。

2 个答案:

答案 0 :(得分:1)

不,你不必声明它,synthesize将负责在编译时动态注入代码。另一方面,如果你没有声明它,你将无法直接在Xcode中检查变量,这是缺点。

答案 1 :(得分:1)

在Objective-C 2.0中,编译器将为您和访问器合成存储。以前不是这种情况,因此所有人都明确宣布伊娃的例子。