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