[英]Release any retained subviews of the main view on iPhone
我在項目模板和其他一些示例項目中看到了這段代碼。
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
有人可以向我解釋一下self.myOutlet = nil有什么用? 它會釋放內存嗎? 我以為你把[myOutlet release]放在 - (void)dealloc中釋放內存。 什么是=零? 你什么時候需要這樣做?
如果將myOutlet
指定為myOutlet
@property (retain)
則無論何時將其指定為指向新對象,都將釋放舊對象並保留新對象。 將它指定為nil
,會釋放它先前指向的對象。
通常在發生低內存警告並且控制器視圖被卸載時調用viewDidUnload
方法(控制器本身保留在內存中)。 正如David在他的回答中指出的那樣,控制器通常會保留插座,因此即使在主視圖消失后它們也會留在內存中 - 這會降低卸載視圖的好處。
即使您在viewDidUnload
釋放它們,仍然需要以dealloc方法釋放出口
有關詳細信息,請參閱此SO問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.