作者popcorny (毕业了..@@")
看板MacDev
标题Re: [问题] viewDidUnload只有在有用到xib时才需要 …
时间Tue May 3 09:51:42 2011
※ 引述《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
2F:推 aecho:推连结 :) 05/04 07:46