【发布时间】:2011-06-30 19:04:37
【问题描述】:
Objective-C 中如何将数组克隆或复制到其他数组中?
我想要一个函数,当传入 NSMutableArray 时,它会获取数组并用内容填充另一个数组。
就这么简单 someArray =passedInArray 吗?或者操作系统有一些 initWith 函数?
【问题讨论】:
标签: objective-c
Objective-C 中如何将数组克隆或复制到其他数组中?
我想要一个函数,当传入 NSMutableArray 时,它会获取数组并用内容填充另一个数组。
就这么简单 someArray =passedInArray 吗?或者操作系统有一些 initWith 函数?
【问题讨论】:
标签: objective-c
这应该够用了
[NSMutableArray arrayWithArray:myArray];
另外,copy 方法可能也是如此
[myArray copy];
但是简单的赋值不会克隆任何东西。因为您只分配了一个引用(您的参数可能看起来像NSMutableArray *myArray,这意味着myArray 是一个引用)。
【讨论】:
不介意,但您的问题似乎是 重复 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
【讨论】: