我在這裏看到了關於這個主題的一些帖子,但沒有明確的答案。這是我的問題。UINavigationController:彈出時釋放ViewController的內存
我有一個UINavigationController
我用作畫廊。在第一個控制器上,我加載了一堆遠程圖像。這增加了我的記憶大小,但不是那麼多。點擊圖片時,它會推到另一個viewController
,該圖片只有點擊圖片的圖片。這可能會從這些圖像中加載另一個1MB或更多的數據。
這裏的問題是,用戶可能瀏覽任何數量的這些畫廊。因爲當我彈出viewController時,內存不會被釋放,當用戶繼續瀏覽畫廊時,我開始在我的應用程序中獲取太多的內存使用。
當我彈出我的viewController
時,是否有任何方法可以釋放此內存?也許在我的viewDidDisappear:
方法中?如果是這樣,我會釋放什麼?我又如何再創造它?我嘗試了這一點,例如發佈我的觀點,但我碰到了崩潰。
對此問題有何洞見?
PhotosGalleryiPad *gallery = [[PhotosGalleryiPad alloc] init];
gallery.items = self.items;
gallery.asset = self.currentAsset;
[self.navigationController pushViewController:gallery animated:YES];
[gallery release];
老實說...這聽起來像內存真的應該在從堆棧中彈出時加載的視圖的「dealloc」卸載。你確定你正在釋放dealloc中的所有照片數據嗎?除非您以某種方式允許用戶無限制地瀏覽大量視圖,而無需單擊「後退」按鈕...視圖導航器中的視圖通常應單擊標題中的後退按鈕來釋放。如果是這種情況,那麼你可能想看看不同的導航範例。 – Delete
不,dealloc正在被調用,我的屬性正在釋放。他們只需點擊,推動控制器,然後點擊正常的「返回」按鈕彈出回到根目錄。 –