我開始編寫我們的iPhone應用程序的第二個版本,並試圖整理以前的錯誤(因爲這是我第一次嘗試Objective-C)。我的問題與「UIViewController被銷燬時我需要做的事情」有關,似乎存在一些矛盾的答案,我想確保我理解正確。當我需要銷燬UIViewControllers時,我應該如何整理它
夫婦的約束:
- 此代碼是用於與iOS 5和iOS 6設備
- 我不想註冊,因爲UIViewControllers需要接收通知註銷的viewWillAppear中和viewWillDisappear NSNotifications即使它們不能被用戶看到。
- 我使用的是StoryBoard而不是單獨的nib文件。
因此,考慮到上述限制條件,下列說法是否正確?
- IBOutlets故事板連接到UIViewControllers應該是弱,強引用會在幕後創建。
- 因爲IBOutlets弱我不應該需要零出來在低內存情況
- 我不應該使用viewDidUnload,因爲它是被棄用,而不是我應該使用didReceiveMemoryWarning。在這種情況下,我只需要刪除很強的屬性(可以重新計算)
- 可以在viewDidLoad上註冊NSNotifications。
- 因爲我希望在隱藏視圖時繼續接收通知,所以取消註冊視圖的最佳位置是dealloc,在didReceiveMemoryWarning中註銷它們也沒有好處。
感謝您的幫助,
丹
故事板連接到UIViewControllers
感謝您的回覆,對您對第2點的回覆感到好奇。我不認爲我需要刪除弱引用,因爲它們不會保留關聯的對象。我假定一旦一個對象失去了它的所有強大的引用,它就會被銷燬。 – 2013-03-01 14:34:05
對不起,除此之外,如果我在低內存情況下將我的弱IBOutlets清零,我將如何獲取對UI對象的引用? – 2013-03-01 14:35:23
事實上,我不同意這一點。沒有任何微弱的參考不會釋放任何記憶。 – DaGaMs 2013-03-01 14:37:55