我是否必须“释放”我声明为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似乎没有检测到任何泄漏。
提前感谢您的帮助!
答案 0 :(得分:0)
由于他们被保留,是的,你有责任释放他们。通常,对于视图控制器,这应该发生在-viewDidUnload
中,如下所示:
- (void)viewDidUnload
{
self.lblStatus = nil;
[super viewDidUnload];
}
(使用合成的retain
访问器设置属性的值将在将实例变量设置为新值之前释放旧值。)