也許這是一種不好的做法,但是從我閱讀的文檔中,我得到了有關在viewDidLoad方法內部初始化對象的建議,並且在viewDidUnload中沒有它。iOS6 viewDidUnload已過時
例如,如果您有類似增加觀察員
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(filterready:)
name:@"filterReady"
object:nil];
現在我沒有方法來刪除觀察員,但是viewDidLoad中成爲圖如圖每次從而導致具有多叫觀察員在一段時間後運行,然後選擇器被多次調用。
我可以通過將一些清潔劑移入viewDidDisappear方法來解決這個問題,但是現在我有些疑惑,如果我做正確的事情。
在我的示例中,我有一個正在控制自己的subnavigations多個導航控制器,但dealloc中絕不會爲他們,即使他們沒有被引用
這可能是正確的答案。仍然很奇怪,他們刪除了這條消息。我通過跟隨Paul Hegarty的幻燈片學習了使用SDK,當然他們仍然適用於iOS5。今年我會檢查他更新的幻燈片,也許他在這方面提供了一個很好的暗示。 – Hons
@Hons它根本就不奇怪 - 「viewDidUnload」顯式地根據文檔,僅在因存在內存警告而卸載視圖時才調用。如果你在'viewDidLoad'中添加了一個觀察者,並且只在'viewDidUnload'中刪除了它,那麼很多時候你將會被刪除而不刪除它。這將在通知中心留下一個懸掛指針,幾乎肯定會在稍後發生崩潰。 – Tommy
如何檢查您的視圖是否在窗口中? – zakdances