Cocoa Custom Notification Example

匿名 (未验证) 提交于 2019-12-03 08:59:04

问题:

Can someone please show me an example of a Cocoa Obj-C object, with a custom notification, how to fire it, subscribe to it, and handle it?

回答1:

@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]; 

For more information, see the documentation for NSNotificationCenter.



回答2:

Step 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"); } 

Step 2:

//trigger event [[NSNotificationCenter defaultCenter]     postNotificationName:@"eventType"     object:nil ]; 


回答3:

Make sure to unregister notification (observer) when your object is deallocated. Apple documentation states: "Before an object that is observing notifications is deallocated, it must tell the notification center to stop sending it notifications".

For Local Notifications the next code is applicable:

[[NSNotificationCenter defaultCenter] removeObserver:self]; 

And for observers of distributed notifications:

[[NSDistributedNotificationCenter defaultCenter] removeObserver:self]; 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!