2014-07-25 114 views
0

我有一個菜單控制器,通過弱參考與視圖控制器相連。視圖控制器對菜單控制器有錯誤的引用。刪除KVO觀察者問題

菜單控制器觀察視圖控制器中收集視圖的某些屬性。 當菜單控制器釋放時,我打電話給[self.viewController.collectionView removeObserver:self forKeyPath:keyPath];但是在這個地方self.viewController已經是零了。

在什麼地方我應該刪除KVO觀察員?

回答

2

我相信你可以用其他方式做。 你應該在視圖控制器中添加的觀察者,而不是在菜單控制:

[object addObserver:menuController forKeyPath:@"openingBalance" ...]; 

只是通過菜單控制器作爲參數addObserver:方法和執行菜單控制器observeValueForKeyPath:方法。你可以在需要的時候刪除觀察者(我相信你想在dealloc方法中做),仍然在視圖控制器中,在這種情況下,當你的視圖控制器將被釋放時,它首先刪除觀察者。

+0

謝謝,這個解決方案適合我! – AlKozin