作者popcorny (毕业了..@@")
看板MacDev
标题Re: [请益] self.member跟member的差别?
时间Wed Sep 21 09:23:10 2011
※ 引述《iwayne (Wayne)》之铭言:
: → iwayne:感谢上面二位大大,那看来我的理解是没错的。所以,在使用 09/20 17:59
: → iwayne:基本上最好用self.member用property方式,依(retain,..) 09/20 17:59
: → iwayne:比较方便。那动作原理是不是当ViewDidUnload发生时,先透过 09/20 18:00
: → iwayne:Setter送nil进去,让setter retain nil,并release旧的。 09/20 18:01
: → iwayne:然後,dealloc时,再去直接针对member release。就算那时候 09/20 18:01
: → iwayne:member是nil,送release也没关系。我这样理解对吗? 09/20 18:02
: → iwayne:但是为什麽不直接dealloc release member就好,还要事先去 09/20 18:05
: → iwayne:对setter送nil呢?@@" 09/20 18:05
你也可以在viewDidUnload里面使用[memeber release]; member=nil;
也可以在dealloc使用self.memeber = nil
这两个本来就是一样的
而为什麽这两边都要release
是因为viewDidUnlaod跟dealloc被呼叫的时机本来就不同
你的view controller的生命周期可能是
init
viewDidLoad
viewDidUnlaod
viewDidLoad
viewDidUnload
dealloc
为了保证资源都有正确的被释放
所以我们都会在dealloc跟viewDidUnload去把你在loadView或是viewDidLoad产生
的物件释放掉
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.251.162
1F:推 iwayne:对耶,原来重点在被呼叫的时机。感谢大大的开释... 09/21 10:51