删除KVO观察者问题

问题描述:

我有一个菜单控制器,通过弱参考与视图控制器相连。视图控制器对菜单控制器有错误的引用。删除KVO观察者问题

菜单控制器观察视图控制器中收集视图的某些属性。 当菜单控制器释放时,我打电话给[self.viewController.collectionView removeObserver:self forKeyPath:keyPath];但是在这个地方self.viewController已经是零了。

在什么地方我应该删除KVO观察员?

我相信你可以用其他方式做。 你应该在视图控制器中添加的观察者,而不是在菜单控制:

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

只是通过菜单控制器作为参数addObserver:方法和执行菜单控制器observeValueForKeyPath:方法。你可以在需要的时候删除观察者(我相信你想在dealloc方法中做),仍然在视图控制器中,在这种情况下,当你的视图控制器将被释放时,它首先删除观察者。

+0

谢谢,这个解决方案适合我! – AlKozin