作者anpig (Andrew)
看板MacDev
标题Re: [quiz] NSImage's leak
时间Wed Nov 28 17:47:11 2007
※ 引述《yllan (蓝永伦)》之铭言:
: 所以当你产生了一个新的 Pool,他会被推到某个 Stack 上,而收到
: autorelease 的物件就会被这个 Stack 上最新产生的 Pool 所记录。
: 当 Pool 自己要被 deallocate 时,就把自己移出 Stack,并且把刚刚
: 记录的物件和次数给 release 回来,大致是这样。
: 所以这个问题的回答是,看当时哪一个 pool 是最近产生、又没有
: dealloc'd ,就会被加到那个 pool。
懂了!感谢细心的解释阿!T_T
: : 突然想到,既然你说这个delay release会等到最靠近的autorelease pool
: : release时,所以是否可以把autorelease pool当作对autoreleased object
: : 强制release的一个机制?
: : (当然如果被其他object retain住的不算)
: ?看不太懂这段...
大概就是像你为了release在产生NSImage object过程附带产生的autorelease object
在loop中多写的autorelease pool一样,如果不确定在某段code中是否会有
autorelease object出现,在这段code的前後加上autorelease pool
应该会是最好的办法?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.130.189.30