在我的代码中,我必须将一个数组存储在另一个数组中:
最好的方法是什么?

第一:

NSArray *arrayTemp = myArray;

第二:
NSMutableArray *arrayTemp = [[NSMutableArray alloc]init];
[arrayTemp addObjectsFromArray:myArray];
...instruction....
[arrayTemp release];

最佳答案

通过执行arrayTemp = myArray,您可以将arrayTemp声明为指向现有数组myArray的新指针。那不是副本(如果将X放在myArray [42]中,arrayTemp [42]也将是X)。

第二种变体看起来像是在复制数组,但是当您似乎需要“按值”复制时,仍通过引用(通过指针)复制数组的值。

您应该尝试的只是:

NSArray *arrayCopy = [myArray copy];

当心:从内存管理的角度来看,这等效于retainalloc/init:使用后应释放arrayCopy

10-08 07:46