首页 > 其他 > 详细

<<黑马程序员>>autoreleasepool自动释放池

时间:2015-03-24 22:36:18      阅读:200      评论:0      收藏:0      [点我收藏+]

一 : autoreleasepool的基本使用

     autoreleasepool{

         ①    在这个代码块中代表创建了一个自动释放池

         ②    autorelease  方法会返回对象本身

         ③    调用完autorelease方法后,对象的计数器不变

         ④    autorelease会将对象方法一个自动释放池中

         ⑤    当自动释放池被销毁时会对池子里面的所有对象做一次release操作

技术分享

}

 二 : autorelease的基本用法

  ①  会将对象放到一个自动释放池中。

  ②  自动释放池销毁时,会对池子里面的所有对象做一次release操作

  ③  会返回对象本身。

  ④  autorelease只是延时了对象释放的时间
 

三  : autorelease的好处

   ①   不用再关心对象的释放时间

   ②  不在关心什么时候调用了release

 

四 : autorelease的使用注意

   ①  占用内存较大的对象不要随便使用autorelease

   ②  占用的内存较小的对象使用autorelease,没有太大影响。

   ③  不能连续写两次autorelease,因为池子在销毁时,会做两次release操作,造成野指针错误

错误写法:都会造成野指针

技术分享

技术分享

 

五 :自动释放池

  ①   在ios程序运行过程中,会创建无数多个池子,这些池子都是以栈的结构存在,(先进后出)

  ②   当一个对象调用了autorelease方法时,会将这个对象方法放到栈顶的释放池

六  : 其他注意点

  ①   系统自带的方法里面没有包含alloc、new、copy、说明已经autorelease过的对象

  ②   开发中经常会提供一些方法快速创建一个已经autorelease过的对象

类方法实现

  ①  在对象方法中创建已经autorelease过的对象时,要用self来创建对象

   ②  不管子类谁调用这个方法,就会返回子类相应的对象

技术分享

主函数

技术分享

 

带参数的

技术分享

技术分享

<<黑马程序员>>autoreleasepool自动释放池

原文:http://www.cnblogs.com/honey503775123/p/4364035.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!