一 : 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来创建对象
② 不管子类谁调用这个方法,就会返回子类相应的对象
主函数
带参数的
原文:http://www.cnblogs.com/honey503775123/p/4364035.html