作者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