我正在动态地在一堆 tableview 控制器上注册一个观察者,所以如果他们在同一个对象上注册,我需要删除以前的观察者。为此,我需要检查对象上是否存在观察者。
这可能吗?我知道使用 NSNotification 你可以使用 NSNotification 中心单例,但是这对于 KVO 是一样的吗?
我正在动态地在一堆 tableview 控制器上注册一个观察者,所以如果他们在同一个对象上注册,我需要删除以前的观察者。为此,我需要检查对象上是否存在观察者。
这可能吗?我知道使用 NSNotification 你可以使用 NSNotification 中心单例,但是这对于 KVO 是一样的吗?
我不知道,您如何删除在同一对象上注册的观察者。
但我认为以下方法将帮助您提前找到解决方案。
observationInfo
返回一个指针,该指针标识有关向接收者注册的所有观察者的信息。
- (void *)observationInfo
此方法的默认实现从由接收者指针键入的全局字典中检索信息。
不,我知道没有简单的方法。KVO 和 NSNotification 在这方面有所不同。如果您需要该功能,为什么不使用 NSNotification 而不是 KVO 来实现您的解决方案?