佳为好友

原:关于自动缓存池的一些原理

创建:2011.05.25

#  mian函数里面的NSAutoreleasePool,当每次事件循环一次后,都会释放一次缓存池的内容,因此,不是我原来想想的那样“只在程序退出时才完全释放”,看来苹果做的还是不错的。

# 如果要自定义NSAutoreleasePool的话,那么注意:
## 要使用drain,而不要调用release。这个是SDK文档中写的。主要的原因是为了兼容“有垃圾回收器时”的情况。在有gc的时候,任何对象的release都不会被调用,因此缓存池不会被释放。而且,对于非gc的情况,drain会执行和release一样的操作,也会释放缓存池。因此,只要调用drain就足够了。
## 千万要注意:如果调用了drain,就一定不要在调用release了,这样不但在gdb调试的时候有警告,而且,会导致一些对象释放的很不正常!!!!我为了这个问题,调试了一天!!



+++++

posted on 2012-12-30 11:23 佳为好友 阅读(295) 评论(0)  编辑 收藏 引用 所属分类: 非UI


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


导航

<2012年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

留言簿(1)

随笔分类

搜索

最新评论

评论排行榜