![](/img/trans.png)
[英]Multiple objects subscribing to an NSNotification (Objective-c)
[英]NSNotification send multiple objects?
我正在学习如何使用NSNotificationCenter。 我的理解是,对于每个通知,您都可以发送一个对象。 有没有一种发送带有多个对象的通知的方法,或者我必须为每个对象发布新的通知吗?
您可以在postNotification:object:userInfo:
的userInfo
参数中传递您喜欢的任何信息。
例如,您可以按以下方式调用方法:
NSDictionary *accountDetails = @{@"accountHolder":@"Mr John Smith",
@"accountNumber":@(01234567),
@"sortCode":@"01-98-34"};
[[NSNotificationCenter defaultCenter] postNotificationName:@"BankDidCreateNewAccount" object:self userInfo:accountDetails];
只是为了更详细地说明:发布带有对象的通知,您可以使用
-postNotificationName:object:
或-postNotificationName:object:userInfo:
在object参数中,您只能提供一个对象。 通常, object
参数是notificationSender
,即无论您在哪里发布notificationSender
,都将传递self
。
如果您已使用-addObserver:selector:name:object:
注册了通知,并且为object
参数传递了除nil
任何值,那么您将仅收到发布的通知对象的通知( -postNotificationName:object:
object
参数)与-addObserver:
的object
参数匹配。
如果传递nil
在-addObserver:
那么object
的值-postNotification:
为这一特定的观察者忽略。
哇,听起来很复杂。 但这实际上非常简单。 如果在-addObserver:
使用,则object
参数必须匹配。
使用userInfo
参数可向通知观察器提供更多详细信息。
一个通知只能有一个object
。 对于多个对象,这取决于要发送它们的对象。 如果分别观察每个,则是,您需要发送多个通知。 如果只需要发送上下文信息,则应该使用userInfo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.