作者leondemon (狗狗)
看板MacDev
标题Re: [问题] 记忆体管理:当两物件互相参考时...
时间Mon May 3 20:29:09 2010
1F:→ atst2:一样的,原po用NSMutableArray存物件,一定会有retain的动作 05/03 17:09
2F:→ atst2:所以A物件的retainCount是3,而非原po说的2. 05/03 17:10
3F:→ atst2:除非原po将A物件指定给C的时候,没有遵照retain/release的 05/03 17:11
4F:→ atst2:规则,做拥有权的管理与转移,否则根本不应出现他所想问的问题 05/03 17:12
retainCount的部份 是我的疏失算错了 (谢谢指正)
但是您所说的retain/releae的规则问题 跟我提的的确无关
当一个物件有instance variable时 若要retain这个property
则势必只能在dealloc时去release它 这时就会发生我所说的问题
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.77.52.127
後来我再次算算 我发现我没有算错
最後A B两物件 的确retainCount只剩下1
因为当初创造A物件的物件已经release了A物件 而此时A物件只有被B物件给参考
因此A的retainCount为1 反之亦然 B物件只剩下被A物件参考 retainCount亦为1
(差点就被唬过去 XD)
※ 编辑: leondemon 来自: 203.77.52.127 (05/03 20:40)