Objective-C: 从所有 NSDistributedNotificationCenter 通知中获取通知名称?
Objective-C: Getting notification names from all NSDistributedNotificationCenter notifications?
我确定我有一个工具可以记录所有系统范围的通知,但是找不到它,我正在编写自己的工具。
所以文档说我通过调用来设置观察者:
- (void)addObserver:(id)notificationObserver
selector:(SEL)notificationSelector
name:(NSString *)notificationName
object:(NSString *)notificationSender
…但我不想听任何一个通知或对象,所以我将这些值设置为零。到目前为止一切顺利,我知道什么时候广播通知。
但是我如何在收到未知通知和发件人后获取他们的姓名?可能吗?
来自docs:
The method specified by notificationSelector must have one and only one argument (an instance of NSNotification).
因此:
-(void)observerMethod:(NSNotification*)notification
{
NSLog( @"%@", notification);
}
name
是已通过通知的 属性。发件人通常是属性object
。 (它不是真正的发件人,但如果其他人是发件人,该对象将更有趣。)您可以从 userInfo
属性.
中检索其他信息
顺便说一句,注意:本例中的选择器是 observerMethod:
,而不是 observerMethod
(包括冒号)。
我确定我有一个工具可以记录所有系统范围的通知,但是找不到它,我正在编写自己的工具。
所以文档说我通过调用来设置观察者:
- (void)addObserver:(id)notificationObserver
selector:(SEL)notificationSelector
name:(NSString *)notificationName
object:(NSString *)notificationSender
…但我不想听任何一个通知或对象,所以我将这些值设置为零。到目前为止一切顺利,我知道什么时候广播通知。
但是我如何在收到未知通知和发件人后获取他们的姓名?可能吗?
来自docs:
The method specified by notificationSelector must have one and only one argument (an instance of NSNotification).
因此:
-(void)observerMethod:(NSNotification*)notification
{
NSLog( @"%@", notification);
}
name
是已通过通知的 属性。发件人通常是属性object
。 (它不是真正的发件人,但如果其他人是发件人,该对象将更有趣。)您可以从 userInfo
属性.
顺便说一句,注意:本例中的选择器是 observerMethod:
,而不是 observerMethod
(包括冒号)。