黑马程序员技术交流社区
标题:
从NSMutableArray移除对象,引用计数的问题
[打印本页]
作者:
liury
时间:
2015-11-26 16:30
标题:
从NSMutableArray移除对象,引用计数的问题
普遍规律
1.如果方法名是add/instert 开头,那么被添加的对象计数会+1
2.如果方法名是remove/delete开头,那么被移除对象会-1
然后我就写了下面的代码
@autoreleasepool {
Person *p = [Person new];
NSMutableArray *arr = [[NSMutableArray alloc]init];
[arr addObject:p];
[arr addObject:p];
[p release];
[arr removeObject:p];
[arr removeObject:p];
}
复制代码
单步执行时,第一次执行[arr removeObject:p]; p对象就被释放了。
不对,不对,removeObject,引用计数不是-1,怎么释放了。
想不明白,把所有用到的对象都打印了一下。原来,[arr removeObject:p];会把数组中所有的p都移除,第一次执行数组就空了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2