NSNotificationCenter:添加观察者但前提是没有注册观察?可以查询对象的观察状态吗?
NSNotificationCenter: Add observer but only if not registered to observe? Possible to query observing status for an object?
有没有办法查看对象是否已经是某种通知类型的观察者?
目前,每个 addObserver
调用都与 removeObserver
配对以避免重复的观察者,但是有没有办法在调用 addObserver
之前查看对象是否已经是观察者?
NSNotificationCenter.defaultCenter().removeObserver(self, name: CustomEvent, object: foo)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #("test"), name: CustomEvent, object: foo)
很遗憾,没有。就像 KVO 一样,通知中心不提供 API 让我们检查对象 (self
在这种情况下) 是否已经注册为观察者与否。
您必须自己使用布尔变量进行跟踪,并在调用 addObserver 时将其设置为 "true",并在调用 removeObserver 时将其重置。
仅当 bool 设置为 "false" 时再次调用 addObserver。
没有其他方法可以确定对象是否已经是观察者。
有没有办法查看对象是否已经是某种通知类型的观察者?
目前,每个 addObserver
调用都与 removeObserver
配对以避免重复的观察者,但是有没有办法在调用 addObserver
之前查看对象是否已经是观察者?
NSNotificationCenter.defaultCenter().removeObserver(self, name: CustomEvent, object: foo)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #("test"), name: CustomEvent, object: foo)
很遗憾,没有。就像 KVO 一样,通知中心不提供 API 让我们检查对象 (self
在这种情况下) 是否已经注册为观察者与否。
您必须自己使用布尔变量进行跟踪,并在调用 addObserver 时将其设置为 "true",并在调用 removeObserver 时将其重置。 仅当 bool 设置为 "false" 时再次调用 addObserver。
没有其他方法可以确定对象是否已经是观察者。