我以为我理解了 copy 和 mutableCopy 之间的区别。但今天我对自己产生了怀疑。我还是不明白。
\n\nNSArray *arrayB = [NSArray arrayWithObject:@"a"];\nNSArray *arrayA = [arrayB copy];\nNSArray *arrayC = [arrayB mutableCopy];\nNSArray *arrayD = arrayB;\nRun Code Online (Sandbox Code Playgroud)\n\n当我对 arrayA、arrayC 或 arrayD\xef\xbc\x8c 进行一些更改时,arrayB 是否会与更改的 arrayA、arrayC 和 arrayD 之一具有相同的更改?
\n// Can't modify this NOW
NSArray *arrayB = [NSArray arrayWithObject:@"a"];
// Create another copy of Array B like XEROX. If you change in XEROX
// it does not reflect to original Copy
NSArray *arrayA = [arrayB copy];
// This is a mutable copy so you can make changes in this and you have
// to change NSArray to NSMutableArray here as it the mutable copy.
NSMutableArray *arrayC = [arrayB mutableCopy];
// Any change made in arrayD reflect to arrayB but arrayD is NSArray
// (immutable) so you can not make any changes in arrayD
NSArray *arrayD = arrayB;
Run Code Online (Sandbox Code Playgroud)
希望这能帮助您解决问题。
| 归档时间: |
|
| 查看次数: |
3259 次 |
| 最近记录: |