美文网首页
NSNotification object

NSNotification object

作者: ANTI_JAM | 来源:发表于2017-04-17 10:48 被阅读99次

我们正常使用NSNotification进行消息传递的时候,附带参数都是通过userInfo来实现。

但是最近试了一下,例如我想传个BOOL类型的参数,试着用object来传递也是可以实现的。

试了以下几种情况:

1.post填nil, add填XXX。此时收不到通知。

2.post填XXX, add填nil。此时收到通知。

1.post填XXX, add填XXX。此时收到通知。

2.post填nil, add填nil。此时收到通知。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(XXXX:) name:@"XXXXX" object:objectA];

[[NSNotificationCenter defaultCenter] postNotificationName:@"XXXXX" object:objectA userInfo:@{@"key":@"param"}];

可是按道理object这个参数并不是用来做参数传递的。翻了一下官方文档:官方解释最后一个参数为notificationSender,解释如下:

The object whose notifications the observer wants to receive; that is, only notifications sent by this sender are delivered to the observer. When nil, the notification center doesn’t use a notification’s sender to decide whether to deliver it to the observer.

官方并没有对object参数做限制,但是正确使用NSNotification的姿势应该是所有想进行传递的参数都应该放在userInfo中,object只作为收发通知的一个限制要求。

相关文章

网友评论

      本文标题:NSNotification object

      本文链接:https://www.haomeiwen.com/subject/bhxtzttx.html