Ios 是否发送多个对象?

Ios 是否发送多个对象?,ios,nsnotificationcenter,Ios,Nsnotificationcenter,我正在学习如何使用NSNotificationCenter。我的理解是,对于每个通知,您可以发送单个对象。是否有方法发送包含多个对象的通知,或者我必须为每个对象发布新通知?通知只能有一个对象。对于多个对象,这取决于您想要发送它们的目的。如果每一个都被单独观察,那么是的,您需要发送多个通知。如果您只需要发送上下文信息,那么应该使用userInfo。您可以在postNotification:object:userInfo:的userInfo参数中传递您喜欢的任何信息 例如,您可以按如下方式调用该方法

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

通知只能有一个对象。对于多个对象,这取决于您想要发送它们的目的。如果每一个都被单独观察,那么是的,您需要发送多个通知。如果您只需要发送上下文信息,那么应该使用userInfo。

您可以在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参数中,只能提供一个对象。通常,对象参数是notificationSender,也就是说,您可以从发布通知的任何位置传递self

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

如果在-addObserver:中传递nil,则会忽略此特定观察者的-postNotification:对象值

哇,听起来很复杂。但其实很简单。如果在-addObserver:中使用,则对象参数必须匹配


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

您是否已阅读userInfo参数的备注。。。?