use*_*563 2 objective-c nsarray
我有很多不同NSArrays,根据用户的选择我希望其中一个被复制到一个新的NSArray.如何将一个复制NSArray到另一个?
ris*_*shi 11
这有几种方法 -
array1 = [array2 copy];
使用initWithArray方法.
您也可以使用initWithArray:copyItems:方法.(这个如果NSMutableArray)
你可以使用
NSArray *_newArray = [NSArray arrayWithArray:_oldArray];
Run Code Online (Sandbox Code Playgroud)
或者如果你更喜欢,你可以使用:
NSArray *_newArray = [[NSArray alloc] initWithArray:_oldArray];
Run Code Online (Sandbox Code Playgroud)
(在这种情况下,第一个数组的对象不会被复制,只获得一个保留前面NSArray,你可以从任何数组中删除它不会影响另一个数组的对象,但如果你更改任何对象中的任何对象NSArray也将在另一个中更改,因为旧数组和新数组都使用相同的对象实例.)
如果您的计划是在新数组中创建旧对象的另一个实例:
NSArray *_newArray = [[NSArray alloc] initWithArray:_oldArray copyItems:true];
Run Code Online (Sandbox Code Playgroud)
如果您正在使用ARC,则不需要执行任何其他操作,如果不是,则两者都不需要,-initWithArray:或者在您不想再使用之后-initWithArray:copyItems:应该使用它[_newArray release];来释放阵列.
| 归档时间: |
|
| 查看次数: |
8997 次 |
| 最近记录: |