Objective-C:从所有NSDistributedNotificationCenter通知中获取通知名称?

时间:2015-03-05 11:12:37

标签: objective-c nsnotifications

我确信我有一个工具可以记录所有系统范围的通知,但是找不到它,我正在写我自己的。

所以文档说我通过调用

来设置观察者
- (void)addObserver:(id)notificationObserver
           selector:(SEL)notificationSelector
               name:(NSString *)notificationName
             object:(NSString *)notificationSender

...但我不想特别听任何一个通知或对象,所以我将这些值设置为nil。到目前为止一直很好,我知道什么时候播出通知。

但是,如果收到未知通知和发件人的名称,我该如何获取?有可能吗?

1 个答案:

答案 0 :(得分:2)

来自docs

  

notificationSelector指定的方法必须只有一个参数(NSNotification的一个实例)。

因此:

-(void)observerMethod:(NSNotification*)notification
{
  NSLog( @"%@", notification);
}

name是传递通知的属性。发件人通常是财产object。 (它实际上并不是发件人,但如果其他人是发件人,则该对象会更有趣。)您可以从userInfo属性中检索其他信息。

BTW,注意:此示例中的选择器为observerMethod:,而不是observerMethod(包括冒号)。