2011-04-21 46 views
0

有2對象:A和B約釋放對象在可可框架使用時KVO

呼叫[A的addObserver:B中的keyPath:...];

如果我在某處釋放對象A. 必須首先調用[A removeObserver:B ...]?

如果我在某處釋放對象B. 必須首先調用[A removeObserver:B ...]?

回答

1

你只需要做第二個,以避免A發送消息到釋放對象。

0

作爲一個良好的practive的問題,你應該刪除你的觀察者,當它不再需要了,但不這樣做不會造成任何問題,因爲這兩個對象都不被消息保留,所以如果你釋放A,它將停止觀察B和如果釋放B,觀測值將永遠不會改變,因此您的KVO觀測方法將永遠不會被調用。