Ios NSnotificationCenter postNotificationName谁是接收者?
文档中提到了发送者和通知名称,但在哪里提到了将此通知发布给谁?Ios NSnotificationCenter postNotificationName谁是接收者?,ios,notifications,nsnotificationcenter,receiver,Ios,Notifications,Nsnotificationcenter,Receiver,文档中提到了发送者和通知名称,但在哪里提到了将此通知发布给谁?通知是一种广播机制。从doc开始,“对象向通知中心注册,以使用addObserver:selector:name:object:或addObserverForName:object:queue:usingBlock:methods接收通知(NSNotification对象)”,即任何感兴趣的对象都可以注册为侦听器。通知是一种广播机制。根据文档,“对象向通知中心注册以使用addObserver:selector:name:object:
通知是一种广播机制。从doc开始,“对象向通知中心注册,以使用addObserver:selector:name:object:或addObserverForName:object:queue:usingBlock:methods接收通知(NSNotification对象)”,即任何感兴趣的对象都可以注册为侦听器。通知是一种广播机制。根据文档,“对象向通知中心注册以使用addObserver:selector:name:object:或addObserverForName:object:queue:usingBlock:methods接收通知(NSNotification对象)”,即任何感兴趣的对象都可以注册为侦听器。您不会直接向某人发布通知。通知的名称,发件人确定谁获得通知
感兴趣的对象可以订阅通知。发布通知时,将通知所有以该名称收听通知的订阅者。实际上,Cocoa通知可以在两个级别进行调整:
- 通知名称(字符串)
- 寄件人
报告清楚地说明了这一点
下面是文档中的一个小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值
通知允许松散耦合的设计,因为对象在其实现中不绑定在一起,可以彼此独立工作。您不会直接向某人发布通知。通知的名称,发件人确定谁获得通知
感兴趣的对象可以订阅通知。发布通知时,将通知所有以该名称收听通知的订阅者。实际上,Cocoa通知可以在两个级别进行调整:
- 通知名称(字符串)
- 寄件人
报告清楚地说明了这一点
下面是文档中的一个小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值
通知允许松散耦合的设计,因为对象在其实现中不绑定在一起,可以彼此独立工作。我应该在代码中的何处添加此NSnotificaton语句?我应该将它放在必须是侦听器的函数中吗?@Namratha我建议您参考MoviePlayer示例。我应该在代码中的何处添加此NSnotificaton语句?我应该把它放在必须是监听器的函数中吗?@Namratha我建议您参考MoviePlayer示例。请您说明“通知允许松散耦合的设计,因为对象在其实现中不绑定在一起,可以彼此独立工作。”此外,在addObserver:selector:name:object:中,我不理解selector参数。请解释。假设有两类A
和B
,并且每当发生事件时,A
的对象需要通知B
的对象。在没有通知的情况下,我们可以直接从A
的某个方法调用B
的某个方法,从而将这两个类绑定在一起并创建硬依赖关系。对于通知,A
可以直接向通知管理器广播事件发生的情况,如果B
正在侦听,则它将收到事件通知。如果没有,那么这件事就不会引起注意。但是在本例中,我们没有将这两个类绑定在一起。选择器
参数是任何人发布通知时应该调用的observer对象中的方法。您能解释一下吗“通知允许松散耦合的设计,因为对象在其实现中不绑定在一起,可以彼此独立工作。另外,在addObserver:selector:name:object:中,我不理解selector参数。请解释。假设有两类A
和B
,并且每当发生事件时,A
的对象需要通知B
的对象。在没有通知的情况下,我们可以直接从A
的某个方法调用B
的某个方法,从而将这两个类绑定在一起并创建硬依赖关系。对于通知,A
可以直接向通知管理器广播事件发生的情况,如果B
正在侦听,则它将收到事件通知。如果没有,那么这件事就不会引起注意。但是在本例中,我们没有将这两个类绑定在一起。selector
参数是observer对象中的方法,任何人发布通知时都应该调用该方法。