A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冷傲阳 中级黑马   /  2016-5-24 23:20  /  870 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

autorelease使用注意
1.        只有在自动释放池中调用了对象的autorelease方法,这个对象才会被存储到这个自动释放池中.
2.        对象创建可以在自动释放池的外面,在自动释放池内调用autorelease就能吧对象加入自动释放池
3.        自动释放池结束的时候,仅仅对存储在自动释放池中的对象发送1条release,而不是销毁对象
4.        如果在自动释放池内调用同一个对象autorelease方法多次,就会将这个对象多次存储到这个自动释放池中,在自动释放池结束的时候,会为对象发送多条release效益,这个时候就会出现僵尸对象错误.
5.        如果在自动释放池中调用了存储在自动释放池中对象的release方法,在自动释放池结束的时候,还会再调用对象的release方法,这个时候就会有可能会造成野指针操作
6.        将帝乡存储在自动释放池,并不会使对象的引用计数器+1,,创建对象将对象存储在自动释放池,就不需要调用对象的release方法了
7.        自动释放池可以嵌套,调用对象的autorelease方法,会将对象加入到当前自动释放池中,只有在当前自动释放池结束的时候才会向对象发送release消息

2 个回复

倒序浏览
过来看看正好复习下,最常用的 autoreleasepool的作用域的问题.与变量的作用于的区别,作用于结束的时候会为调用了autorelease的对象,release一次
回复 使用道具 举报
城夺在夺夺顶替顶替枯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马