2010-10-05 72 views
2

我的根視圖控制器是一個包含多個註釋的地圖。當選擇一個註釋並點擊附件按鈕時,我將顯示一個模式視圖,如下所示:http://i.stack.imgur.com/hACyH.png在模態視圖中收到內存警告 - 父視圖控制器的對象被釋放。如何預防?

在此模式視圖中,您可以獲得街景視圖查看註釋座標(我使用UIWebview )。您也可以提交照片,或執行一些看起來內存消耗相對較高的其他任務。任何時候,當我顯示模態視圖時,在控制檯中收到「接收到內存警告」消息時,父對象(IE MapKit對象)似乎會被釋放,因爲一旦我解散了模態視圖,地圖現在居中於地球(南非大西洋附近的非洲附近)和桌面視圖是空的。

即使存在內存警告,我也想保留這些對象。看起來造成這種情況的是viewDidUnload在根視圖控制器中被調用,並且在這種方法中,我將所有變量設置爲零。處理這種記憶狀況的正確方法是什麼?

謝謝!

回答

3

如果您確實收到了didReceiveMemoryWarning,則默認實現將卸載其視圖(如果可以的話),然後調用viewDidUnload。我不知道你是如何設置你的控制器,但你可能需要存儲當前的座標,然後當viewDidLoad/Appear被調用時,你可以確保地圖設置爲你想要的位置。這裏是視圖控制器上的蘋果文檔life cycle

+0

我不再使用didUnload方法,它工作正常。唯一的缺點是我得到了與UIWebview不停的內存警告,但該應用程序似乎現在運行良好。現在我將發現如何通過UIWebview消除持久性內存警告。 – 2010-10-06 05:08:50

相關問題