为什么NSNotification第三个参数经常是对象:nil?

时间:2012-05-01 09:35:21

标签: iphone ios cocoa nsnotificationcenter

我无法在apple doc https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsnotificationcenter_Class/Reference/Reference.html

中看到第三个参数对象的解释

在所有像这样的例子How to create a class to send and receive events through NSNotificationCenter in Objective-C?中,它是零

没人解释:为什么反对:nil?

什么时候不是零?

2 个答案:

答案 0 :(得分:7)

当你正在观看某个物体时,这不是零。

场景:您有两个对象,每个对象都通过NSNotificationCenter触发事件。您只想接收objectA的事件。

解决方案:通过NSNotificationCenter订阅并传入objectA作为对象参数。

答案 1 :(得分:4)

当您需要知道哪个对象发布通知时,这不是零。看看-(void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender

notificationSender

观察者想要接收通知的对象;也就是说,只有此发件人发送的通知才会传递给观察者。

如果您传递 nil ,通知中心不会使用通知的发件人来决定是否将其传递给观察者。

(来自您链接的相同NSNotificationCenter参考)