iOS学习之—— autorelease
来源:互联网 发布:sqlserver删除主键约束 编辑:程序博客网 时间:2024/05/22 14:33
调用autorelease方法,可以使取得的对象存在,但自己不持有对象。autorelease提供这样的功能,使对象在超出指定的生成范围时能够自动并正确地释放(调用release方法)。
autorelease的具体使用方法如下:
- 生成并持有NSAutoreleasePool对象;
- 调用已分配对象的autorelease实例方法;
- 废弃NSAutoreleasePool对象。(自动调用release)
注意:在大量产生autorelease的对象时,只要不废弃NSAutoreleasePool对象,那么生成的对象就不能被释放,隐藏会产生内存不足的现象。典型的例子是读入大量图像的同时改变其尺寸。图像文件读入NSData对象,并从中生成UIImage对象,改变该对象尺寸后生成新的UIImage对象。这种情况下,就会大量产生autorelease的对象。
在此情况下,有必要在适当的地方生成、持有或废弃NSAutoreleasePool对象。
提问:如果autorelease NSAutoreleasePool对象会如何?
回答:发生异常
通常在使用Objective-C,也就是Foundation框架时,无论调用哪一个对象的autorelease实例方法,实现上是调用的都是NSObject类的autorelease实例方法。但是对于NSAutoreleasePool类,autorelease实例方法已被该类重载,因此运行时就会出错。
1 0
- iOS学习之—— autorelease
- ios学习之autorelease pool
- iOS学习————Objective C内存管理之理解autorelease
- IOS 学习之 —— 内存管理alloc,assign,retain,copy,release,autorelease
- iOS 之Autorelease
- iOS之优先使用autorelease
- iOS开发笔记之六十一——Autorelease Pool的实现原理总结
- OC基础—内存管理之autorelease
- OC学习笔记之autorelease
- 黑马程序员—IOS加强视频—@autorelease
- iOS内存管理——autorelease方法解析
- ios autorelease
- iOS autorelease
- iOS学习笔记(8)——ARC与所有权修饰符——strong,weak和autorelease
- autorelease学习
- 黑马程序员——OC基础之autorelease
- 黑马程序员——autorelease
- IOS开发之带返回值的函数应不应加autorelease
- iOS--tag的使用(通过tag找view子视图)
- json解析二维对象
- Java中的String和Date、Timestamp之间的转换+long类型的陷阱
- Android ActionBar应用实战,高仿微信主界面的设计
- oracle数据泵使用
- iOS学习之—— autorelease
- 临时变量调用拷贝构造函数的次数
- jquery获取自定义属性(attr和prop)实例介绍
- Spring内部bean实例
- swift 设置动画结束之后不移除
- LINK1123:failure during conversion to COFF:file invalid or corrupt
- HTML(JS)+SOA+MongoDB简易架构实践经验
- iOS:你真的理解你在用的自定义NSLog吗?
- 电话 短信