澄清問題的跟進:跟進viewDidUnload與dealloc的問題
What exactly must I do in viewDidUnload? When should I release objects in -(void)viewDidUnload rather than in -dealloc?
所以我們說有一個內存不足的錯誤,並且認爲是隱藏的,並且viewDidUnload被調用。我們做釋放和無舞。後來整個視圖堆棧不再需要,所以調用dealloc。由於我已經在viewDidUnload中發佈了release和nil,所以我沒有在dealloc中使用它。完善。
但是,如果沒有低內存錯誤,則永遠不會調用viewDidUnload。 dealloc被調用,因爲我沒有釋放和零的東西,有內存泄漏。
換句話說,dealloc永遠會被調用,而不會首先調用viewDidUnload?
而實際的後續行動是,如果我在viewDidLoad中分配並設置了一些內容,並且將其釋放並在viewDidUnload中設置爲nil,我是否將它從dealloc中刪除,或者是否進行防禦性的無檢查如果它不是零,dealloc和release/nil?
你知道你可以發送零發佈消息沒有問題,對吧? nil簡單地忽略發送給它的所有消息並返回nil,因爲它的值沒有錯誤。無需像NULL這樣的無防禦性檢查 – 2010-05-16 15:52:39