Quelqu'un peut-il me montrer un exemple d'objet Cocoa Obj-C, avec une notification personnalisée, comment le déclencher, s'y abonner et le gérer?
Réponses
Trop de publicités? @implementation MyObject
// Posts a MyNotification message whenever called
- (void)notify {
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification" object:self];
}
// Prints a message whenever a MyNotification is received
- (void)handleNotification:(NSNotification*)note {
NSLog(@"Got notified: %@", note);
}
@end
// somewhere else
MyObject *object = [[MyObject alloc] init];
// receive MyNotification events from any object
[[NSNotificationCenter defaultCenter] addObserver:object selector:@selector(handleNotification:) name:@"MyNotification" object:nil];
// create a notification
[object notify];
Pour plus d'informations, consultez la documentation de NSNotificationCenter .
Étape 1:
//register to listen for event
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(eventHandler:)
name:@"eventType"
object:nil ];
//event handler when event occurs
-(void)eventHandler: (NSNotification *) notification
{
NSLog(@"event triggered");
}
Étape 2:
//trigger event
[[NSNotificationCenter defaultCenter]
postNotificationName:@"eventType"
object:nil ];
Assurez-vous de désenregistrer la notification (observateur) lorsque votre objet est désalloué. La documentation Apple indique: "Avant qu'un objet observant des notifications ne soit désalloué, il doit dire au centre de notification d'arrêter de lui envoyer des notifications".
Pour les notifications locales, le code suivant est applicable:
[[NSNotificationCenter defaultCenter] removeObserver:self];
Et pour les observateurs des notifications distribuées:
[[NSDistributedNotificationCenter defaultCenter] removeObserver:self];