簡體   English   中英

在iPhone上釋放主視圖的所有保留子視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM