NSNotificationCenter问题

时间:2010-12-07 03:17:55

标签: iphone cocoa

有没有办法知道对象是否已经注册为特定通知的观察者? 在我的实现中,我必须动态添加和删除观察者。出于某种原因,有一个随机问题,即侦听器接收两次相同的通知。我知道我必须检查我的编码,但如果我能知道这些信息,我会更容易解决。 感谢。

2 个答案:

答案 0 :(得分:2)

没有。无法查询此信息。如果您需要,您需要自己跟踪。

答案 1 :(得分:2)

您可能需要查看NSNotificationQueue。以下是Apple的概述。听起来这可以帮助您停止接收重复的通知:

  

NSNotificationQueue对象(或简单地说   通知队列)充当缓冲区   通知中心(实例)   NSNotificationCenter)。而a   通知中心分发   发布时的通知,   通知放入队列   可以推迟到结束   当前通过运行循环或   直到运行循环空闲。的重复   通知也可以合并   只发送一个通知   虽然有多个通知   已发布。通知队列维护   通知(实例)   NSNotification)一般在第一   以先出(FIFO)顺序。当一个   通知上升到了前面   队列,队列发布到   通知中心,反过来   将通知发送给所有人   注册为观察员的对象。

     

每个帖子都有默认值   通知队列,即   与默认值相关联   任务通知中心。您   可以创建自己的通知   队列,每个队列有多个队列   中心和线程。