ディープコピーを可能にする組み込み関数はありますNSMutableArray
か?
私は周りを見回しました、何人かの人々は[aMutableArray copyWithZone:nil]
深いコピーとして働くと言います。でもやってみたら浅いコピーのようです。
現在、for
ループを使用して手動でコピーを実行しています。
//deep copy a 9*9 mutable array to a passed-in reference array
-deepMuCopy : (NSMutableArray*) array
toNewArray : (NSMutableArray*) arrayNew {
[arrayNew removeAllObjects];//ensure it's clean
for (int y = 0; y<9; y++) {
[arrayNew addObject:[NSMutableArray new]];
for (int x = 0; x<9; x++) {
[[arrayNew objectAtIndex:y] addObject:[NSMutableArray new]];
NSMutableArray *aDomain = [[array objectAtIndex:y] objectAtIndex:x];
for (int i = 0; i<[aDomain count]; i++) {
//copy object by object
NSNumber* n = [NSNumber numberWithInt:[[aDomain objectAtIndex:i] intValue]];
[[[arrayNew objectAtIndex:y] objectAtIndex:x] addObject:n];
}
}
}
}
しかし、私はよりクリーンで簡潔な解決策が欲しいのです。