也有人會告訴我viewDidUnload和dealloc之間有什麼區別?當前在UINavigationContoller的viewController堆棧中的UIViewController會被卸載嗎?
回答
是的,如果發生內存警告,它可能會被卸載。
至於viewDidUnload和dealloc之間的區別 - 當您的視圖被卸載時,前者會被調用,通常是因爲內存不足。當對象的保留計數達到零時(即,它完全從內存釋放),調用後者。
UIViewController
s永遠不會被卸載。他們擁有的UIView
可以。
所以,如果你的問題是如果一個UIView可以卸載,雖然它的控制器已經被推到導航控制器上,答案是肯定的。只有當前顯示的UIView不會被卸載(如果你不阻止卸載機制的工作)。
此外,viewDidUnload
是一個消息,當它所管理的視圖已被卸載時,該消息被髮送到UIViewController,這通常與釋放視圖不同。實際上,當視圖實際上被釋放時,它肯定會被卸載,但不會發送viewDidUnload
。
已被壓入導航控制器堆棧但尚未彈出的UIViewController不會被解除分配。但是,它的view
屬性可能會被卸載 - 特別是,如果出現內存不足的情況,並且該視圖控制器的視圖當前不可見(有些內容正在覆蓋它,如模式對話框或其他VC上的視圖) ),該視圖可能會被系統卸載。
viewDidUnload
對於該方法的用途而言是一個糟糕的名稱。當低內存條件導致視圖被卸載時它被調用 - 即它不是與viewDidLoad
「相反」的方法,我想你可能會合理地期望這種方法。
更多信息:
When should I release objects in -(void)viewDidUnload rather than in -dealloc?
同樣重要的是viewDidLoad
將在viewDidUnload
之後再次被調用。如果您在viewDidLoad
中執行設置,則應該以第二次調用它不會導致內存泄漏的方式處理它。
要麼在viewDidUnload
(禮貌,如果它們是內存密集型)中撕下所有東西,或者在設置它們時檢查它們的存在並且不要這樣做兩次。 (而且,當然,完全之前或dealloc
方法中撕裂下來。)
您是不保證之前dealloc
是viewDidUnload
將被調用。
- 1. 在導航卸下的ViewController堆棧
- 2. UIViewController不會卸載
- 3. 是否有可能推UINavigationContoller堆棧上UIViewController的2個單獨的實例
- 4. Viewcontroller沒有被推到堆棧
- 5. 在UIViewController中加載和卸載數據
- 6. Viewcontroller堆棧理解問題
- 7. 在導航堆棧中加載UIViewController兩次
- 8. 如何找到當前的堆棧?
- 9. 前綴中的堆棧
- 10. 卸下活動從堆棧
- 11. ViewController在Xamarin導航堆棧彈出後沒有被釋放.iOS
- 12. 在macOS當前進程中識別堆棧和堆段
- 13. 從Presentmodelview刪除的UIViewController堆棧
- 14. 從堆棧中永久移除UIViewController
- 15. 如何強制ViewController卸載?
- 16. UIViewController阻止卸載視圖
- 17. 如何從UIScrollView卸載UIViewController?
- 18. 在日誌中打印當前的返回堆棧
- 19. 如何在OpenGL中獲取矩陣堆棧的當前大小?
- 20. 如何卸載安裝了堆棧的Haskell軟件包?
- 21. 彈出後端堆棧時,碎片會被破壞嗎?
- 22. 根ViewController如何在堆棧上推送多個ViewController?
- 23. 如何獲得當前堆棧級別
- 24. 我可以從當前事件堆棧返回Microsoft Access VBA嗎?
- 25. 在UIVIewController中呈現FormSheet ViewController
- 26. ARC UIViewController從堆棧彈出時未被釋放
- 27. 在推送到堆棧的新viewController中更新NSMutableArray
- 28. 內存中的堆棧實際上是一個堆棧嗎?
- 29. 堆棧被損壞
- 30. 堆棧被損壞
在pointDidUnload被調用的時候,視圖已經被卸載 - 這是爲你完成的。它仍然取決於您的UIViewController的子類,以便根據需要發佈您管理的任何網點。 – occulus 2011-06-01 16:31:31
@occulus:plz閱讀viewDidUnload的apple文檔。 – Jhaliya 2011-06-01 16:34:12