有没有办法知道对象是否已经注册为特定通知的观察者? 在我的实现中,我必须动态添加和删除观察者。出于某种原因,有一个随机问题,即侦听器接收两次相同的通知。我知道我必须检查我的编码,但如果我能知道这些信息,我会更容易解决。 感谢。
答案 0 :(得分:2)
没有。无法查询此信息。如果您需要,您需要自己跟踪。
答案 1 :(得分:2)
您可能需要查看NSNotificationQueue。以下是Apple的概述。听起来这可以帮助您停止接收重复的通知:
NSNotificationQueue对象(或简单地说 通知队列)充当缓冲区 通知中心(实例) NSNotificationCenter)。而a 通知中心分发 发布时的通知, 通知放入队列 可以推迟到结束 当前通过运行循环或 直到运行循环空闲。的重复 通知也可以合并 只发送一个通知 虽然有多个通知 已发布。通知队列维护 通知(实例) NSNotification)一般在第一 以先出(FIFO)顺序。当一个 通知上升到了前面 队列,队列发布到 通知中心,反过来 将通知发送给所有人 注册为观察员的对象。
每个帖子都有默认值 通知队列,即 与默认值相关联 任务通知中心。您 可以创建自己的通知 队列,每个队列有多个队列 中心和线程。