将NSMutableArray中的对象放入另一个数组中无法正常工作

And*_*rew 0 iphone objective-c nsmutablearray

我有这个代码:

secondArray = [firstArray objectAtIndex:1];
Run Code Online (Sandbox Code Playgroud)

索引1处的对象已经是一个NSMutableArray [firstArray].问题是,当我改变时secondArray,firstArray也会发生变化.

我怎么能阻止这个?

csa*_*ano 5

您需要按照以下代码执行某些操作:

NSMutableArray *secondArray = [[NSMutableArray alloc] initWithArray: [firstArray objectAtIndex:1] copyItems:YES];
Run Code Online (Sandbox Code Playgroud)

这将创建一个新数组,并将第一个数组中的每个项目复制到新创建的数组,而不是保留它们,就像代码中的情况一样.

但有一点需要注意:第一个数组中的所有对象都需要符合NSCopying协议才能使用.