Cocoa Touch - 解除分配IBOutlets

时间:2010-07-14 03:59:33

标签: cocoa-touch

我过去常常为iPhone宣布IBOutlets,

IBOutlet UILabel *myLabel

我刚刚发现声明它们的正确方法就像是,

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

但是第二种正确的方法是你必须在-(void)dealloc方法中释放每个IBOutlet以避免内存泄漏吗?

1 个答案:

答案 0 :(得分:3)

简而言之,他们应该以任何一种方式解除分配。在第二种方法中,您所做的只是创建一个getter / setter对,它不会在适当的时间处理释放。它有一些逻辑,知道何时在替换对象时正确解除分配,但它不能在那里进行最后的清理,因为setter仍然以这种方式分配一个新对象。

以这种方式看待它:您必须释放您专门分配的对象。如果您的插座,通过代码的过程,或者凭借来自NIB文件的实例化数据被分配了一个对象,在某些时候您负责清理它(除非它来自自动释放方便方法)。 / p>