Cocoa NSNotificationCenter 应用程序之间通信失败

标签 cocoa nsnotifications nsnotificationcenter

我需要在两个不同的控制台应用程序(观察者和客户端)之间进行通信。

在观察者应用程序中,我添加了以下代码:

[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification" object:self];

在客户端应用程序中,我添加了以下代码:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(trackNotification:) name:@"MyNotification" object:nil];

-(void)trackNotification:(NSNotification*)notif
{
    NSLog(@"trackNotification: %@", notif);
    NSLog(@"trackNotification name: %@", [notif name]);
    NSLog(@"trackNotification object: %@", [notif object]);
    NSLog(@"trackNotification userInfo: %@", [notif userInfo]);
}

但什么也没发生。我阅读了所有文档,但我对 Mac OS X 是全新的。 有什么想法吗?

<小时/>

我阅读了有关分布式通知的信息,我更改了代码,现在看起来像这样: 在服务器端:

[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(trackNotification:) name:@"MyNotification" object:nil];

-(void)trackNotification:(NSNotification*)notif
{
    NSLog(@"trackNotification: %@", notif);
    NSLog(@"trackNotification name: %@", [notif name]);
    NSLog(@"trackNotification object: %@", [notif object]);
    NSLog(@"trackNotification userInfo: %@", [notif userInfo]);
}

在客户端:

NSMutableDictionary *info;
info = [NSMutableDictionary dictionary];
[info setObject:@"foo" forKey:@"bar"];

[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"MyNotification"
                                   object:nil
                                 userInfo:info 
                       deliverImmediately:YES];

我运行了这两个应用程序,但没有任何反应。我做错了什么?

最佳答案

NSNotificationCenter 仅适用于一个应用内的通知。您想要NSDistributedNotificationCenter 。您可以在Notification Programming Topics中找到更多详细信息.

关于Cocoa NSNotificationCenter 应用程序之间通信失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7615820/

相关文章:

objective-c - NSWindow 不响应击键命令 -s

cocoa - 火狐 cocoa 插件

ios - NSNotificationCenter 观察者未收到通知

ios - NSNotification如果数据更改

ios - 状态栏边框变化无任何通知

cocoa - Web View 到 PDF 文档

cocoa - 从许多其他音频的部分制作音频

objective-c - 使用 NSDistributedNotificationCenter 在 Objective-C 中开发非 GUI 用户代理

iphone - 添加观察者:名称

ios - 在 Objective-C 中通过 NSNotificationCenter 发送和接收消息?