在我的代码中,我必须将一个数组存储在另一个数组中:
最好的方法是什么?
第一:
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];
当心:从内存管理的角度来看,这等效于
retain
或alloc/init
:使用后应释放arrayCopy
。