文档http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html谈及发件人和通知名称,但它在哪里提到将此通知发布给谁?
答案 0 :(得分:3)
您不会直接向某人发布通知。通知的名称和发件人确定谁收到通知。
感兴趣的对象可以订阅通知。当您发布通知时,将收到通过该名称收听通知的所有订阅者。实际上Cocoa通知可以在两个级别进行调整:
class documentation清楚地说明了这一点。
这是来自文档的一个小ASCII表,显示根据创建时使用的通知名称和发件人通知谁:
Notification name | Notification sender | Notification set specified -------------------------------------------------------------------- Specified | Specified | Notifications with a particular name from a specific sender. Specified | Unspecified | Notifications with a particular name by any sender. Unspecified | Specified | Notifications posted by a specific sender. Unspecified | Unspecified | All notifications.
未指定表示为该字段提供了nil值。
通知允许松散耦合的设计,因为对象在其实现中没有绑定在一起,并且可以彼此独立地工作。
答案 1 :(得分:1)
notification
是广播机制。从文档开始,“对象使用addObserver注册到通知中心接收通知(NSNotification对象):selector:name:object:或addObserverForName:object:queue:usingBlock:methods。”即,任何感兴趣的对象都可以注册为监听器。