码迷,mamicode.com
首页 > 其他好文 > 详细

autorelease和autoreleasepool应该知道的那些点

时间:2015-08-28 23:20:24      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:对象   生命周期   cocoa   

一个Cocoa对象生命周期,有明确的轨迹

一 ,autorelease:

  1. 对象执行autorelease方法时会将对象添加到自动释放池中
  2. 当自动释放池销毁时自动释放池中所有对象作release操作
  3. 对象执行autorelease方法后自身引用计数器不会改变,而且会返回对象本身
  4. autorelease实际上只是把对象release的调用延迟了,对于对象的autorelease系统只是把当前对象放入了当前对应的autorelease pool中,当该pool被释放时([pool drain]),该pool中的所有对象会被调用Release,从而释放使用的内存。这个可以说是autorelease的优点,因为无需我们再关注他的引用计数,直接交给系统来做!
  5. 对于操作占用内存比较大的对象的时候不要随便使用,担心对象释放的时间太迟,造成内存高峰, 但是操作占用内存比较小的对象可以使用

二,atureleasepool

  • 自动释放池存储于内存中的栈中遵循”先进后出”原则

版权声明:本文为博主原创文章,未经博主允许不得转载。

autorelease和autoreleasepool应该知道的那些点

标签:对象   生命周期   cocoa   

原文地址:http://blog.csdn.net/qq_26544491/article/details/48064073

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!