linyawen

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1,iphone,ipad 中尽量不用自动释放池。

2,假如使用了自动释放池,就得小心:在每一个事件周期(event cycle)的开始,系统会自动创建一个自动释放池;在每一个事件周期的结尾,系统会自动销毁这个自动释放池。一般情况下,你可以理解为:当你的代码在持续运行时,自动释放池是不会被销毁的,这段时间内你也可以安全地使用自动释放的对象;当你的代码运行告一段落,开始等待用户输入(或者其它事件)时,自动释放池就会被释放掉,池中的对象都会收到一个release消息,有的可能会因此被销毁。新创建的自动释放池位于栈顶,响应autorelease 消息的 对象 跟随栈顶 的自动释放池一起销毁(最新创建的那个)。

3,自动释放而非直接释放,可以帮助你节省一些代码量,提高开发速度。但是它有一个直接的缺点:它延缓了对象的释放,在有大量自动释放的对象时,会占用大量内存资源。因此,你需要避免将大量对象自动释放。并且,在以下两种情况下,你需要手动建立并手动销毁掉自动释放池:

3.1.当你在主线程外开启其它线程时:系统只会在主线程中自动生成并销毁掉自动释放池。

3.2.当你在短时间内制造了大量自动释放对象时:及时地销毁有助于有效利用iPad上有限地内存资源。

posted on 2012-05-25 16:44  linyawen  阅读(190)  评论(0编辑  收藏  举报