如何将NSMutableArray复制到另一个数组?

iGa*_*mar -1 arrays objective-c ios

我正在尝试将数组复制到另一个数组,我的代码在下面

NSMutableArray firstArray = [[NSMutableArray alloc]init];
NSMutableArray secondArray = [[NSMutableArray alloc]init];
[firstArray addObject:@"1"];
[firstArray addObject:@"2"];
[firstArray addObject:@"3"];
[firstArray addObject:@"4"];
[firstArray addObject:@"5"];

// have tried following ways

// 1
secondArray=[firstArray copy];

// 2
[secondArray addObjectsFromArray:firstArray];

//3
secondArray = [[NSMutableArray alloc]initWithArray:firstArray];
Run Code Online (Sandbox Code Playgroud)

它工作正常,但问题是,当修改firstArray时,它反映了它在secondArray中的变化,我不希望这样.

请告诉我哪个是正确的方法

use*_*698 5

问题是,你创建了一个"浅"副本.你想要的是一个"深层"副本:

NSArray *deepCopyArray=[[NSArray alloc] initWithArray:someArray copyItems:YES];
Run Code Online (Sandbox Code Playgroud)

要么

NSArray* trueDeepCopyArray = [NSKeyedUnarchiver unarchiveObjectWithData:
      [NSKeyedArchiver archivedDataWithRootObject:oldArray]];
Run Code Online (Sandbox Code Playgroud)

您可以在Mac Developer Library的Copying Collections中找到更多相关信息.