Re: [問題] viweDidUnload該填的內容為何?

看板MacDev作者 (zonble)時間16年前 (2009/08/04 23:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《denru01 (阿儒)》之銘言: : 似乎是只有用在界面上的outlet需要設為nil, : 而保存資料用的NSArray等不需要。 : 但我看很多sample code,卻是將所有的class ivar全部設為nil。 : 因為我在Navigation Control時,是用傳遞物件的方式, : 讓前後的view能夠交換資料, 比較建議的實作是,如果前後的 view controller 之間要交換資料, 那直接定自己的一套 protocol,在路徑比較深的那個 view controller 裡頭做了什麼事情,用 delegate 的方式,回傳給比較前面的那個 view controller。 : 若有最後一行,會讓程式crash,crash原因為objc_msgsend, : 我查到的意思是,可能是送訊息給已經被釋放的物件。 : 若將[textField release];註解掉, : 便可正常work。 : 但這種情況在將UITextField改為UILabel卻不會發生, : 另外我將最後一行改成textField=nil; : 也是可以正常work。 : 想請教是什麼原因,謝謝! 兩種狀況: 1.如果你想要在 table view cell 裡頭加的 subview,是每個 用到的 table view cell 都要用到的,那,直接 subclass UITableViewCell,然後把產生物件與 release 物件這件事情 放在你的 table view cell subclass 的 -(id)init 與 dealloc 裡頭,這樣比較不會做錯事情。 2.如果你要加入的 text field 在一個 view controller 裡頭 就是那麼多個,那,你應該把這些物件當成 view controller 的成員變數處理,在 view controller 的 init 與 dealloc 處理。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.194.167
文章代碼(AID): #1AU56U5t (MacDev)
文章代碼(AID): #1AU56U5t (MacDev)