Re: [問題] viewDidUnload只有在有用到xib時才需要 …

看板MacDev作者 (畢業了..@@")時間14年前 (2011/05/03 09:51), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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

05/03 20:40, , 1F
本文才是正解 http://tinyurl.com/3qqd5d4 前陣子剛好有看
05/03 20:40, 1F

05/04 07:46, , 2F
推連結 :)
05/04 07:46, 2F
文章代碼(AID): #1Dlr-nZj (MacDev)
文章代碼(AID): #1Dlr-nZj (MacDev)