我确信我有一个工具可以记录所有系统范围的通知,但是找不到它,我正在写我自己的。
所以文档说我通过调用
来设置观察者- (void)addObserver:(id)notificationObserver
selector:(SEL)notificationSelector
name:(NSString *)notificationName
object:(NSString *)notificationSender
...但我不想特别听任何一个通知或对象,所以我将这些值设置为nil。到目前为止一直很好,我知道什么时候播出通知。
但是,如果收到未知通知和发件人的名称,我该如何获取?有可能吗?
答案 0 :(得分:2)
来自docs:
notificationSelector指定的方法必须只有一个参数(NSNotification的一个实例)。
因此:
-(void)observerMethod:(NSNotification*)notification
{
NSLog( @"%@", notification);
}
name
是传递通知的属性。发件人通常是财产object
。 (它实际上并不是发件人,但如果其他人是发件人,则该对象会更有趣。)您可以从userInfo
属性中检索其他信息。
BTW,注意:此示例中的选择器为observerMethod:
,而不是observerMethod
(包括冒号)。