精華區beta MacDev 關於我們 聯絡資訊
※ 引述《zonble (zonble)》之銘言: : ※ 引述《wfgh (lyle)》之銘言: : : 請問viewDidUnload在什麼時候會被呼叫呢? : 被呼叫到 self.view = nil 的時候,有兩種狀況 : 1. view controller 被 release : 2. view controller 收到 memory warning : : 而在viewDidUnload裡的實作是只要把從xib載入的IBOulet設成nil就好了嗎? : 有被 retain 起來的 uiview 與其 subclass 都要放掉。 不知道有沒有誤解z大的意思 ^^ 因為z大提到的是"被呼叫到 self.view = nil 的時候" 不過原問題是"viewDidUnload被呼叫的時候" 根據我的實驗 viewDidUnload在release時不會被呼叫 我在ios simulator跟ios device上測試皆是如此 viewDidUnload會被呼叫應該只有2的情況.. 而且是當你的view不在畫面上 且收到memory warning 實作上我的固定pattern會是這樣 - (void) releaseUI { //release all resources allocated from loadView or xib } - (void) dealloc { [self releaseUI]; //release other resources from init methods. [super dealloc]; } - (void) viewDidUnload { [super viewDidUnload]; [self releaseUI]; } 當然新的xcode4中的interface builder已經很體貼的 當你把元件透過拖曳的方式拉進到.h的時候 一併也會在viewDidUnload跟dealloc加上self.xxx = nil 要怎麼寫 就看每個人的習慣囉... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.251.162
phstudy:本文才是正解 http://tinyurl.com/3qqd5d4 前陣子剛好有看 05/03 20:40
aecho:推連結 :) 05/04 07:46