autorelease和autoreleasepool应该知道的那些事
博客专区 > super_co 的博客 > 博客详情
autorelease和autoreleasepool应该知道的那些事
super_co 发表于3年前
autorelease和autoreleasepool应该知道的那些事
  • 发表于 3年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

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

一 ,autorelease:

1.对象执行autorelease方法时会将对象添加到自动释放池中 

2.当自动释放池销毁时自动释放池中所有对象作release操作 

3.对象执行autorelease方法后自身引用计数器不会改变,而且会返回对象本身

4.autorelease实际上只是把对象release的调用延迟了,对于对象的autorelease系统只是把当前对象放入了当前对应的autorelease pool中,当该pool被释放时([pool drain]),该pool中的所有对象会被调用Release,从而释放使用的内存。这个可以说是autorelease的优点,因为无需我们再关注他的引用计数,直接交给系统来做!

5.对于操作占用内存比较大的对象的时候不要随便使用,担心对象释放的时间太迟,造成内存高峰, 但是操作占用内存比较小的对象可以使用

二,atureleasepool

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


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 10
码字总数 7205
作品 1
×
super_co
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: