Observer와 Client라는 두 가지 다른 콘솔 앱간에 통신해야합니다.애플 리케이션 간의 Cocoa NSNotificationCenter 통신에 실패했습니다.
[[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]);
}
하지만 아무 일도 일어나지 않는다 :이 코드를 추가 클라이언트 응용 프로그램에서
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification" object:self];
: 옵저버 응용 프로그램에서
는이 코드를 추가했습니다. 모든 설명서를 읽었지만 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];
I 서버 측에서 두 응용 프로그램을 모두 실행하지만 아무 일도 일어나지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
덕분에이 소스 코드입니다! 나는 한번 살펴 볼 것입니다. – Ana