2010-02-23 25 views
0

下面是探索iPhone SDK書籍的一段代碼。它使用2個視圖的示例。它檢查以查看正在使用哪個視圖並將釋放另一個視圖。iPhone - 處理多視圖的內存

- (void)didReceiveMemoryWarning { 

    [super didReceiveMemoryWarning]; // Releases the view if it 
    // doesn't have a superview 

    // Release anything that's not essential, such as cached data 
    if (self.blueViewController.view.superview == nil) 
     self.blueViewController = nil; 
    else 
     self.yellowViewController = nil; 
} 

我的問題是:如果我的應用程序有許多意見e.g 15,我需要檢查每一個視圖上面和釋放不是使用的是什麼?或者在這種情況下使用了不同的技術嗎?`

回答

0

這個概念是本書中更重要的內容(在低內存警告的情況下釋放任何不重要的內容)而不是示例的細節(清除視圖你沒有使用)。

在許多視圖的情況下,您的應用程序正在使用我的第一個問題是視圖的切換頻率是多少?如果用戶在一個視圖或另一個視圖中停留一段時間,最好在將其他視圖從屏幕上轉換出來時最好釋放它們,以便搶先向應用程序提供儘可能多的可用內存。在這種情況下,本書的示例並不適用,因爲您已經清除了所有「緩存」視圖。如果他們在視圖之間快速切換,那麼離屏視圖可以很好地保持(建立一個新的視圖有點貴)。在這種情況下,您需要在低內存事件中遵循本書的示例。

+0

非常感謝,你已經幫助清除了這麼多。所以如果我知道用戶在視圖加載後會立即在一個視圖中,我應該從內存中釋放前一個視圖? – david 2010-02-23 00:53:11

+1

這將是我會採取的路線。 – fbrereto 2010-02-23 17:09:39