我正在动态地为一些 UITableView 控制器注册观察者,因此我需要在同一对象上注册先前的观察者时删除它们。为了做到这一点,我需要检查对象上是否存在观察者。
这是可能的吗?我知道对于 NSNotification,您可以使用 NSNotificationCenter 单例,但是 KVO 是否也适用呢?
我正在动态地为一些 UITableView 控制器注册观察者,因此我需要在同一对象上注册先前的观察者时删除它们。为了做到这一点,我需要检查对象上是否存在观察者。
这是可能的吗?我知道对于 NSNotification,您可以使用 NSNotificationCenter 单例,但是 KVO 是否也适用呢?
我不知道怎样才能移除在同一对象上注册的观察者。
但我认为下面的方法可以帮助您进一步找到解决方案。
observationInfo
返回一个指针,用于标识与接收器注册的所有观察者相关的信息。
- (void *)observationInfo
该方法的默认实现从全局字典中使用接收者的指针作为键来检索信息。
很抱歉,我不知道有什么简单的方法。KVO和NSNotification在这方面有所不同。 如果你需要这个功能,为什么不使用NSNotification来实现你的解决方案,而不是KVO呢?
observationInfo
使用的更详细的解释。 - Robin Macharg