集合的内存管理

 一:手动集合内存管理

  创建一个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;








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值