1

我在苹果文档https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsnotificationcenter_Class/Reference/Reference.html中看不到对第三个参数对象的解释

在像这样的所有示例中,如何在 Objective-C 中创建一个通过 NSNotificationCenter 发送和接收事件的类?它是零

没有人解释它:那么为什么 object:nil ?

什么时候不是 nil ?

4

2 回答 2

7

当您正在观看某个对象时,它不是零。

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

解决方法:通过NSNotificationCenter订阅,传入objectA作为object参数。

于 2012-05-01T09:41:19.987 回答
4

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

通知发送者

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

如果你传递nil,通知中心不会使用通知的发送者来决定是否将它传递给观察者。

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

于 2012-05-01T09:41:08.473 回答