2014-01-16 151 views
1

我想確定一些事情。KVO - 複製觀察對象

假設我有一個NSArray,有一些對象。 假設那些對象被觀察到。

現在,如果我用另一個NSArray創建另一個NSArray(initWithArray:copyItems:NO),觀測值是否會保持不變?

如果我通過複製創建(initWithArray:copyItems:YES),觀察將遵循新數組中的新對象嗎?

謝謝!

回答

3

觀察結果通過它們的指針鏈接到原始對象。

如果您創建一個新的數組而不復制,那麼這些對象是相同的。觀察不會改變,你只需要多次引用相同的對象。

如果通過複製創建新數組,則對象不同,但原始對象仍然存在於原始數組中。觀察不會改變,你仍然在觀察原始物體。新對象實際上是不相關的,並且沒有觀察者。

+0

感謝您的回答。這就是我的想法,但我想確定(你永遠不知道......)。 – BPCorp