嗨我有一个数组,我试图复制然后从中删除一个元素。问题是我认为我从副本中删除元素,但它也从原始数组中删除元素。我不知道发生了什么事。我是目标c的新手,所以任何帮助都会非常感激。
NSArray *newarray = appDelegate.orginalArray;
[newarray removeObjectAtIndex: 2];
当我在删除对象后查看数组时,它已将其从newarray和orginalArray中删除,为什么会这样?
非常感谢
答案 0 :(得分:2)
这不是复制品。 newArray
和appDelegate.originalArray
都指向同一个对象。你需要这样做:
NSMutableArray *newArray = [appDelegate.originalArray mutableCopy];
另请注意,我正在使用NSMutableArray
和mutableCopy
来确保副本可变(即支持添加和删除项目)
答案 1 :(得分:0)
指针,伙伴和可变/不可变抽象。 newarray
和appDelegate.originalArray
都是指向同一个不可变(不可更改)数组的指针(引用)。你想要:
NSArray *newarray = [appDelegate.orginalArray mutableCopy];