ARC的NSMutableArray行为

时间:2013-06-22 11:35:40

标签: ios objective-c nsmutablearray

在向NSMutableArray添加对象(例如对象X)时启用ARC,如果该对象X在代码中的其他位置直接更改,那么NSMutableArray中的“复制”是否也应该更新?

NSMutableArray只是引用原始对象的指针吗?

2 个答案:

答案 0 :(得分:3)

如果是copy那么没有。如果您已将其添加为参考,那么是。它只是一个指向对象的指针,因此对象的任何更改都将应用于数组中的对象引用。

不要被数组的NSMutable部分搞糊涂。普通的NSArray也会发生同样的事情:如果更改了对象,那么数组将引用已更改的对象。可变部分仅适用于数组,而不适用于数组中的对象。

答案 1 :(得分:3)

不是这样添加的:

[marray addObject:[object2 copy]];

但是当你像这样添加它(作为参考)时,它会更新:

[marray addObject:object2];