复制NSMutableArray并更改它

时间:2013-06-10 08:03:01

标签: objective-c nsmutablearray

我有方法:

-(void)ModifyArray:(NSMutableArray)orginalArray
{
 NSMutableArray* copy = [[NSMutableArray alloc]init];
 copy = [orginalArray copy];
 Field* field = [copy objectAtIndex:0];
 [copy replaceObjectAtIndex:0 withObject:field];
}

我在最后一行收到错误,导致我无法更改复制数组。

当我使用mutableCopy而不是复制时,我可以更改复制数组,但我的orginalArray也会改变:/我只想创建复制od orginalArray而不引用它并且只选择稀疏的新数组。

1 个答案:

答案 0 :(得分:3)

我在这里看到了一些问题。

数字1)

摆脱第一行,即:

NSMutableArray* copy = [[NSMutableArray alloc]init];

第二个“[originalArray copy];行已经没用了。

请改用:

NSMutableArray * copy = [originalArray mutableCopy];

或更好:

NSMutableArray * myOriginalArrayCopy = [originalArray mutableCopy]; 

(见本回答的最后一点)

2号)

您的声明需要一个指针:

-(void)modifyArray:(NSMutableArray *)orginalArray

(注意我还将“ModifyArray”的第一个字母改为小写字母?Objective-C中的最佳做法是方法名称应以小写字母开头)

3号)

不要使用“copy”作为变量的名称。它看起来很糟糕(它也可能是一个语言关键字)。

你甚至在“modifyArray”函数末尾用“复制”可变数组做任何事情吗?