NSNotification发送多个对象?

时间:2013-08-22 20:08:54

标签: ios nsnotificationcenter

我正在学习如何使用NSNotificationCenter。我的理解是,对于每个通知,您可以发送单个对象。有没有办法发送包含多个对象的通知,还是我必须为每个对象发布新通知?

2 个答案:

答案 0 :(得分:7)

您可以在userInfo的{​​{1}}参数中传递您喜欢的任何信息。

例如,您可以按如下方式调用该方法:

postNotification:object:userInfo:

更详细地解释:要使用对象发布通知,您可以使用

NSDictionary *accountDetails = @{@"accountHolder":@"Mr John Smith", @"accountNumber":@(01234567), @"sortCode":@"01-98-34"}; [[NSNotificationCenter defaultCenter] postNotificationName:@"BankDidCreateNewAccount" object:self userInfo:accountDetails]; -postNotificationName:object:

在object参数中,您可能只提供单个对象。通常,-postNotificationName:object:userInfo:参数为object,即您可以从发布通知的任何位置传递notificationSender

如果您使用self注册了通知,并且您为-addObserver:selector:name:object:参数传递了除nil之外的任何值,那么您将只收到已发布通知对象的通知({{ 1 {} object中的参数与object中的-postNotificationName:object:参数匹配。

如果您在object中传递-addObserver:,则此特定观察者会忽略nil -addObserver:的值。

哇,听起来很复杂。但它实际上非常简单。如果在object中使用-postNotification:参数必须匹配。

使用object参数向通知观察者提供更多详细信息。

答案 1 :(得分:1)

通知只能有一个object。对于多个对象,它取决于您要为其发送的内容。如果分别观察每个,则是,您需要发送多个通知。如果您只需要发送上下文信息,那么您应该使用userInfo