Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 这个简单的NSMutableArray示例是否会使用ARC泄漏内存?_Ios_Memory Management_Nsmutablearray_Automatic Ref Counting - Fatal编程技术网

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


因此不会泄漏。

不,不会泄漏内存。使用仪器查看是否有泄漏或保留周期。