在向NSMutableArray添加对象(例如对象X)时启用ARC,如果该对象X在代码中的其他位置直接更改,那么NSMutableArray中的“复制”是否也应该更新?
NSMutableArray只是引用原始对象的指针吗?
答案 0 :(得分:3)
如果是copy
那么没有。如果您已将其添加为参考,那么是。它只是一个指向对象的指针,因此对象的任何更改都将应用于数组中的对象引用。
不要被数组的NSMutable部分搞糊涂。普通的NSArray也会发生同样的事情:如果更改了对象,那么数组将引用已更改的对象。可变部分仅适用于数组,而不适用于数组中的对象。
答案 1 :(得分:3)
不是这样添加的:
[marray addObject:[object2 copy]];
但是当你像这样添加它(作为参考)时,它会更新:
[marray addObject:object2];