作者angelyin (等待.微笑)
看板MacDev
標題[問題] 關於使用autorelease或直接使用release的時機
時間Fri Jul 17 20:09:31 2009
各位好:
之前問過關於記憶體管理的問題
雖然弄懂reference counting要怎麼做了
可是卻產生了一些疑問
當我們在使用autorelease時要先建立 autorelease pool
count值是在pool release時才會真正釋放
請問什麼時機使用autorelease會比直接release好啊?
reference counting裡有dealloc這個用法
它可直接把count值歸零並釋放
如果我都有乖乖的release
那到最後count值也會等於零啊
那dealloc又在什麼時候會用到呢?
謝謝各位^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.210.155
1F:推 davll:你要回傳一個物件,但這物件是用alloc+init建立的, 07/17 21:58
2F:→ davll:若不做處理就先回傳的話會發生memory leak, 07/17 21:59
3F:→ davll:這時候就用autorelease把這物件丟到池裡去, 07/17 21:59
4F:→ davll:下一個處理步驟可以用retain把它救回來。;) 07/17 21:59
5F:→ davll:dealloc會在release觸發時自動執行,不信的話可以在dealloc 07/17 22:00
6F:→ ironhead:ref 直接歸零就破壞 ref 的作用了 07/18 02:45