3 ответов:
@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];дополнительную информацию см. В документации по NSNotificationCenter.
Шаг 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"); }Шаг 2:
//trigger event [[NSNotificationCenter defaultCenter] postNotificationName:@"eventType" object:nil ];
обязательно отмените регистрацию уведомления (наблюдателя), когда ваш объект освобожден. В документации Apple говорится:"прежде чем объект, наблюдающий уведомления, будет освобожден, он должен сообщить Центру уведомлений о прекращении отправки уведомлений".
для локальных уведомлений применяется следующий код:
[[NSNotificationCenter defaultCenter] removeObserver:self];а для наблюдателей распределенных уведомлений:
[[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
Comments