这个简单的NSMutableArray示例是否会使用ARC泄漏内存?

时间:2015-12-01 15:23:25

标签: ios memory-management nsmutablearray automatic-ref-counting

我决定最近需要回顾一些基础知识,主要是关于内存管理,我开始怀疑。

我问的原因是因为我对如何使用临时变量在数组中存储安全进程项感到困惑。

如果这个简单的代码会泄漏内存,请告诉我这个简单的代码是否有问题?

self.array=[NSMutableArray new];
// Retain +1
Test  *obj0 = [[Test alloc] init];
// Retain +1
[self.array addObject:obj0];
Test  *obj1 = nil;
//Retain +1
obj1=self.array[0];// does need to be __weak even though it has no owner?

[self.array removeAllObjects];

// is not null
NSLog(@"A: %@", obj1);

1 个答案:

答案 0 :(得分:0)

obj0添加到数组时,其保留计数将增加,例如, here。然后是+2 当您将其分配到obj1时,它的保留计数仍为+2 从阵列中删除所有对象时,其保留计数将减少,因此obj0再次计算+1。 因此它不会泄漏。