我是否必须“释放”我声明为IBOutlets的UI对象,其属性属性为“retain”和“nonatomic”?

时间:2010-07-26 20:47:39

标签: iphone ipad instruments

我是否必须“释放”我声明为IBOutlets的UI对象,其属性属性为“retain”和“nonatomic”?我问,因为我有一个UI var声明为......

@interface MyViewController : UIViewController 
{
IBOutlet UILabel *lblStatus;
}

@property (retain, nonatomic) IBOutlet UILabel *lblStatus;

@end

和我的dealloc一样......

- (void)dealloc 
{
  //[lblStatus release];
  [super dealloc];
}

并且注释掉了lblStatus UI var,当我从导航堆栈中弹出视图时,Instruments似乎没有检测到任何泄漏。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

由于他们被保留,是的,你有责任释放他们。通常,对于视图控制器,这应该发生在-viewDidUnload中,如下所示:

- (void)viewDidUnload
{
    self.lblStatus = nil;
    [super viewDidUnload];
}

(使用合成的retain访问器设置属性的值将在将实例变量设置为新值之前释放旧值。)