如何在Objective-C中克隆或复制数组到其他数组?
我想要一个函数,当它在NSMutableArray中传递时,它接受数组并用内容填充另一个数组。
是否像someArray = passedInArray一样简单?或者os有一些initWith函数?
答案 0 :(得分:12)
这应该足够好了
[NSMutableArray arrayWithArray:myArray];
此外,copy
方法可能也是如此
[myArray copy];
但简单的任务不会克隆任何东西。因为您只指定了引用(您的参数可能看起来像NSMutableArray *myArray
,这意味着myArray
是参考)。
答案 1 :(得分:5)
请注意,但您的问题似乎是重复 deep-copy-nsmutablearray-in-objective-c;但是让我试试。
是的,不是那么简单,你必须要更加小心
/// will return a reference to myArray, but not a copy
/// removing any object from myArray will also effect the array returned by this function
-(NSMutableArray) cloneArray: (NSMutableArray *) myArray {
return [NSMutableArray arrayWithArray: myArray];
}
/// will clone the myArray
-(NSMutableArray) cloneArray: (NSMutableArray *) myArray {
return [[NSMutableArray alloc] initWithArray: myArray];
}
以下是文档文章Copying Collections