J'ai besoin de communiquer entre deux applications de console différentes, Observer et Client.
Dans l'application Observer, j'ai ajouté ce code :
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification" object:self];
Dans l'application Client, j'ai ajouté ce code :
[[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]);
}
mais rien ne se passe. J'ai lu toute la documentation, mais je suis tout nouveau dans Mac OS X. Avez-vous des idées ?
Je me suis renseigné sur les notifications distribuées, j'ai modifié mon code et il ressemble maintenant à ceci : Du côté du serveur :
[[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]);
}
Du côté client :
NSMutableDictionary *info;
info = [NSMutableDictionary dictionary];
[info setObject:@"foo" forKey:@"bar"];
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"MyNotification"
object:nil
userInfo:info
deliverImmediately:YES];
Je lance les deux applications, mais rien ne se passe. Qu'est-ce que je fais de mal ?