Re: [quiz] NSImage's leak

看板MacDev作者 (Andrew)時間16年前 (2007/11/28 13:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/11 (看更多)
※ 引述《yllan (藍永倫)》之銘言: : Cocoa 的記憶體管理不簡單啊~這裡有個小測驗,試試看吧: : . : . : . : 執行程式以後發現記憶體越用越多,用到開始吃 swap ,電腦越來越慢:直到回到 : runloop 或是程式結束時,才會一口氣釋放。出了什麼差錯?和 NSData 的範例一 : 樣,img 都有被 release 了啊!難道 release 並沒有真正 release ?還是哪裡有 : memory leak? : 詳解: : http://yllan.org/wordpress/index.php?p=123 不好意思把舊文搬出來討論。 最近又重新K了一次cocoa memory management 就想到你在這邊貼的文章 剛剛重看完詳解之後有個疑問,就是你說在loop裡放autorelease pool 看來用意是要release在loop裡allocate NSImage時 所附帶產生出需要autorelease的物件 是否是因為這些物件在產生NSImage物件過程中用了[xxx autorelease]; 但是非得等到loop這個scope結束才會clean up,而且會clean up的原因 不是retain count為0,而是因為成為garbage。以上的理解正確嗎? 所以這樣說來,在[img release];時候把這些附帶產生的物件的retain count 減至1,還需要一個autorelease pool來將他們的retain count減至0 是這樣嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.143.246.193
文章代碼(AID): #17JFlgWw (MacDev)
討論串 (同標題文章)
文章代碼(AID): #17JFlgWw (MacDev)