繁体   English   中英

NSNotification发送多个对象?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM