KVO - 复制观察对象

时间:2014-01-16 11:08:12

标签: objective-c nsarray key-value-observing copying

我想确定一些事情。

假设我有一个带有一些对象的NSArray。 假设观察到这些对象。

现在,如果我用第一个(initWithArray:copyItems:NO)创建另一个NSArray,观察是否会被触及?

如果我创建复制(initWithArray:copyItems:YES),观察是否会跟随新数组中的新对象?

谢谢!

1 个答案:

答案 0 :(得分:3)

观察通过指针链接到原始对象。

如果创建新数组而不复制,则对象是相同的。观察不会改变,你只需要对同一个对象进行多次引用。

如果使用复制创建新数组,则对象不同,但原始对象仍存在于原始数组中。观察不会改变,你仍然在观察原始物体。新对象实际上是无关的,没有观察者。