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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanyiyuan 中级黑马   /  2014-9-18 14:20  /  6542 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ARC机制中是否就不存在内存泄漏呢,答案是肯定的.
有的人也许会说ARC中怎么会存在内存泄漏呢,它不是自动管理内存吗?如有疑问请看下面的解说

>>因为当一个对象存入到集合中的时候,默认会保存它的强指针,如果最后不对这个集合进行清空操作,一样会有内存溢出的情况
Person * p = [[Person alloc] init];
NSMutableArray * arr = [[NSMutableArray alloc] init];
[arr addObject:p];
把对象从集合中移除的时候,也会释放掉这个对象的强指针
[arr removeObject:p];
或者[arr removeAllObjects];
而接下来才是重点:
arr = nil;//如果不进行赋值为nil的操作,一样存在内存溢出的现象,赋值为nil系统会对其进行清空所有强指针的操作.
p = nil;

2 个回复

倒序浏览
顶一下。。。
回复 使用道具 举报
视频里有讲到这些,数组中的管理内存方法老师说的很详细,用ARC,懂原理了就会了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马