文档http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html谈到了发件人和通知名称,但它在哪里提到了发布这个通知给?
问问题
2269 次
2 回答
4
您不会直接向某人发布通知。通知的名称和发送者决定谁收到通知。
感兴趣的对象可以订阅通知。当您发布通知时,所有以该名称收听通知的订阅者都会收到通知。实际上 Cocoa 通知可以在两个级别进行调整:
- 通知名称(字符串)
- 发件人
类文档清楚地说明了这一点。
这是文档中的一个小 ASCII 表,显示根据创建时使用的通知名称和发件人通知谁:
通知名称 | 通知发件人 | 指定通知集 -------------------------------------------------- ------------------ 指定 | 指定 | 来自特定发件人的具有特定名称的通知。 指定 | 未指定 | 任何发件人具有特定名称的通知。 未指定 | 指定 | 特定发件人发布的通知。 未指定 | 未指定 | 所有通知。
未指定表示为该字段提供了 nil 值。
通知允许松散耦合的设计,因为对象在其实现中没有捆绑在一起并且可以彼此独立地工作。
于 2011-02-11T04:08:19.940 回答
1
notification
是一种广播机制。从文档中,“对象注册到通知中心以使用 addObserver:selector:name:object: 或 addObserverForName:object:queue:usingBlock: 方法接收通知(NSNotification 对象)。” 即,任何感兴趣的对象都可以注册为listener。
于 2011-02-11T04:03:57.803 回答