2010-08-17 103 views
2

應用程序有4個視圖控制器;菜單,A,B和C以及一個單例類,用於保存4個數組中的數據,這些數據在app終止時寫入磁盤。從菜單中選擇將創建A的一個實例,「a」;從「a」中選擇創建B的實例,「b」,並從「b」中選擇調出一個模態數據輸入視圖「c」。內存問題:模擬內存警告/ didReceiveMemoryWarning

我模擬從「b」的內存警告,並且4個數組的內容(輸入「c」)消失,但不是立即,只有返回到「b」(仍然存在於「b」)然後回到「a」 - 在viewDiDA之間的「a」中的某處,數據完美顯示並且viewWillDisappear,它已經消失,即使我唯一要做的就是點擊後退按鈕。

根據我的經驗,內存警告釋放視圖,但我很疑惑爲什麼數組似乎被釋放。我在創作後嘗試「保留」,但內容仍然消失。

有關可能發生的事情的任何想法都會被讚賞。

謝謝。

回答

3

什麼對我來說不是很明顯(雖然它應該是),當視圖被釋放時,下一次該視圖被調用時,viewDidLoad方法被再次調用;因爲我用viewDidLoad方法初始化了我的數組,所以它們被清除了。

希望有一天在未來這個職位可以節省一些我浪費在這個時間上的時間(至少我不會覺得那麼糟糕,關於'啊,看不見了,viewDidLoad必須叫')