好吧,我的問題是當我使用相機UIImagePicker和手機內存不足。它拋出一個內存警告並卸載該視圖,然後重新加載。如何在存儲器警告後保留值viewDidUnload
我知道這是一個非常普遍的問題,許多問題已經在SO中。我不會進入這個。
- (void)viewDidLoad
{
[super viewDidLoad];
MyPersonClass *persons = [[MyPersonClass alloc] init];
persons.images = [NSMutableDictionary dictionaryWithCapacity:4];
....
...
}
我的問題是我的視圖控制器有四個按鈕和UIImageViews的,當我點擊每一個,他們打開相機和圖像點擊顯示早在UIImageViews的這些圖像也會被保存在persons.images
NSMutable字典。
有時它拋出內存警告流行的錯誤和卸載認爲這樣可以消除所有在的UIImageView這是內存警告之前拍攝的圖像,我失去了一切在persons.iamges
我只是希望能夠檢索這些數據。我不知道在哪裏存儲它(我不想使用CoreData此)謝謝 請幫助
這就是爲什麼MVC方法在移動應用程序中運行良好。數據應存儲在模型中(視圖或控制器不是存儲數據的地方)。還有一個骯髒的竅門 - 你可以重寫viewcontroller的'didReceiveMemoryWarning'並將其保留爲空(即:不調用'[super didReceiveMemoryWarning]'但你沒有聽到我的這個消息:)如果內存級別嚴重,你的應用程序可以被終止。 –
它不再在iOS 5中工作。我已經嘗試過,但仍然卸載視圖 – carbonr
感謝您的洞察力 - 現在不是這樣。然後將所有數據保存在單獨的類(對象)中可能是解決方案。 –