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