作者zonble (zonble)
看板MacDev
标题Re: [问题] viweDidUnload该填的内容为何?
时间Tue Aug 4 23:19:57 2009
※ 引述《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