Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
Xcode 删除与nsmutablearray一起使用的AllObject时出现问题_Xcode_Nsarray - Fatal编程技术网

Xcode 删除与nsmutablearray一起使用的AllObject时出现问题

Xcode 删除与nsmutablearray一起使用的AllObject时出现问题,xcode,nsarray,Xcode,Nsarray,我的代码如上所述,我确实在日志中得到了两个对象,但都是空的。我不知道是使用remove all Object还是使用dealloc for ary_Temp。我应该在每次将其添加到AryDescription后使用removeAllobjects还是alloc 谢谢不要使用dealloc,而是使用releasedealloc将在不计入保留计数的情况下释放对象,并且它迟早会破坏您的应用程序 也许你想要这个 aryDesc = [[NSMutableArray alloc]init];

我的代码如上所述,我确实在日志中得到了两个对象,但都是空的。我不知道是使用remove all Object还是使用dealloc for ary_Temp。我应该在每次将其添加到AryDescription后使用removeAllobjects还是alloc


谢谢

不要使用
dealloc
,而是使用
release
dealloc
将在不计入保留计数的情况下释放对象,并且它迟早会破坏您的应用程序

也许你想要这个

    aryDesc = [[NSMutableArray alloc]init]; 
    NSMutableArray *ary_Temp ;
ary_Temp = [[NSMutableArray alloc]init ];
[ary_Temp addObject:@"Collins Burns"];
[ary_Temp addObject:@"cburns"];
[ary_Temp addObject:@"Active"];


    [aryDescListing addObject:ary_Temp];
[ary_Temp removeAllObjects];


[ary_Temp addObject:@"Collins Burns"];
[ary_Temp addObject:@"cburns"];
[ary_Temp addObject:@"Active"];


[aryDescListing addObject:ary_Temp];
    [ary_Temp removeAllObjects];

    NSLog(@"ary Description===== >>>%@",aryDescListing);

顺便说一句:
removeAllObject
将从数组中删除对象(并将其
retainCount
减少一个),但不会释放数组

removeAllObjects不会释放阵列本身,无论NSLog(@“%@”,ary_Temp)在removeAllObjects前后是否正常工作。我已经执行了您的代码。但我得到的输出如下ary描述=====>>((“Collins Burns”,cburns,Active),(“Collins Burns”,cburns,Active))删除AllObject意味着它只删除对象,这不是释放对象。如果你想释放对象,就意味着在你想要的任何地方使用释放。@arnold我在ArydesList中得到了两个对象,两个都是空的。请创建一个新项目,并按照你的要求粘贴你的代码。多次分配和释放数组是否真的很好,比如说至少一百次从编程的角度来看。谢谢你们的投入,还有其他方法可以做到这一点吗?你们到底想做什么?有一个包含6个对象的数组吗?数组的数组?只有两个数组的数组?这个答案只是猜测,因为我认为你想要什么并不十分清楚。@mugen你的问题听起来像是过早的优化。除非您有一个具体的、量化的性能问题,否则您不应该担心。@mugen从编程的角度来看,最清晰易懂的代码是最好的。然后分析,找到真正需要优化的热点。
aryDesc = [[NSMutableArray alloc] init]; 
NSMutableArray *ary_Temp ;

ary_Temp = [[NSMutableArray alloc] init];
[ary_Temp addObject:@"Collins Burns"];
[ary_Temp addObject:@"cburns"];
[ary_Temp addObject:@"Active"];
[aryDescListing addObject:ary_Temp];
[ary_Temp release];

ary_Temp = [[NSMutableArray alloc] init];
[ary_Temp addObject:@"Collins Burns"];
[ary_Temp addObject:@"cburns"];
[ary_Temp addObject:@"Active"];
[aryDescListing addObject:ary_Temp];
[ary_Temp release];

NSLog(@"ary Description===== >>>%@",aryDescListing);