【发布时间】:2013-05-31 21:28:22
【问题描述】:
在问这个问题之前,我已经阅读了许多 SO 帖子,我猜这个答案就在某个地方,但我没有看到。我是 Objective-C 的新手,我正在尝试做一个我无法理解的(看似)简单的操作。
一般的想法是我有一个NSArray 填充对象(特别是UIImageView 类型)。我想复制那个数组,我已经做了很多方法(都成功)。
复制后,我现在有两个数组。我想修改一个对象,比如在索引 2 处,ONLY 在副本中。
目前看来,因为副本只是复制引用(或指针),更改索引 2 处的对象将同时更改副本和原件。
这有意义吗?
NSArray *originalArray = @[object1, object2];
我尝试复制此数组的方式,以便实现我想要的:
NSMutableArray *originalArrayCopy = [NSMutableArray arrayWithArray:originalArray];
NSArray *originalArrayCopy = [originalArray copy];
NSMutableArray *originalArrayCopy = [[NSMutableArray alloc] initWithArray:originalArray];
似乎在每种情况下,从副本中修改对象也会在原始对象中修改它。
注意:虽然NSArray 显然是不可变的,但我的原始数组中的对象是可变的。
【问题讨论】:
标签: objective-c nsmutablearray nsarray