本文共 739 字,大约阅读时间需要 2 分钟。
一:手动集合内存管理
创建一个Person 类,调用时
Person *p = [[Person alloc]init];
NSMutableArray *array = [[NSMutableArray alloc]initWithCapacity:0];
//当把对象存入到数组(或者字典、NSSet)中的时候,数组会对这个对象进行一个retatin操作
[array addObject:p];
//当把一个对象移除数组的时候,会对这个对象进行一次release操作
[array removeObject:p];
//会对数组中所有的对象进行一次release操作
[array removeAllObjects];
//当集合对象被销毁的时候,会对其内部所有的对象进行一次 release 操作
[array release];
[p release];
二:ARC机制 集合内存管理
ARC机制也是需要担心内存溢出的。当在某些集合(NSArray,NSDictionary,NSSet) 中存储了对象的强指针,如果不清空、释放对象,还是会导致内存溢出
Person *p = [[Person alloc]init];
NSMutableArray *array = [[ NSMutableArray alloc]init];
//当一个对象被存入集合中时候,默认会保存它的强指针
[array addObject:p];
//当把一个对象从集合中删除的时候,会释放掉这个对象的强指针
//[array removeObject:p];
//[array removeAllObjects];
//会释放掉内部的所有强指针
array = nil;
p= nil;
转载地址:http://rxrvb.baihongyu.com/