gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:26:11 25 4
gpt4 key购买 nike

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

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

[[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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com