Re: [quiz] NSImage's leak
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 11 之 11 篇):