Bla*_*end 20 iphone xcode copy deep-copy nsmutablearray
我只想知道如何复制NSMutableArray,这样当我更改数组时,我对它的引用不会改变.如何复制数组?
Reg*_*ent 47
有多种方法可以做到这一点:
NSArray *newArray = [NSMutableArray arrayWithArray:oldArray];
NSArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray] autorelease];
NSArray *newArray = [[oldArray mutableCopy] autorelease];
Run Code Online (Sandbox Code Playgroud)
但是,这些都会创建浅色副本.
(编辑:如果你正在使用ARC,只需删除对它的调用autorelease.)
对于深拷贝,请使用此代码:
NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:oldArray copyItems:YES] autorelease];
Run Code Online (Sandbox Code Playgroud)
值得注意的是:出于显而易见的原因,后者将需要实现所有数组的元素对象NSCopying.
| 归档时间: |
|
| 查看次数: |
29839 次 |
| 最近记录: |