黑马程序员技术交流社区

标题: ARC中的内存泄露 [打印本页]

作者: wanyiyuan    时间: 2014-9-18 14:20
标题: ARC中的内存泄露
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;
作者: 安然一笑    时间: 2014-9-18 15:25
顶一下。。。
作者: ★彬★卍囧神    时间: 2014-9-18 20:58
视频里有讲到这些,数组中的管理内存方法老师说的很详细,用ARC,懂原理了就会了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2