Ios 这个简单的NSMutableArray示例是否会使用ARC泄漏内存?
最近我决定我需要回顾一些基础知识,主要是关于内存管理的,我开始怀疑了 我问这个问题的原因是,我对如何使用临时变量安全地处理数组中的项有点糊涂 有人能告诉我这个简单的代码是否会泄漏内存吗Ios 这个简单的NSMutableArray示例是否会使用ARC泄漏内存?,ios,memory-management,nsmutablearray,automatic-ref-counting,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 obj
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);
将
obj0
添加到数组时,其保留计数将增加,请参见例如。然后是+2
将其分配给
obj1
时,其保留计数仍为+2
从数组中删除所有对象时,它们的保留计数将减少,因此
obj0
的保留计数再次为+1
因此不会泄漏。不,不会泄漏内存。使用仪器查看是否有泄漏或保留周期。