通过目标C的NSNotificationCenter发送和接收消息?

通过目标C的NSNotificationCenter发送和接收消息?

我试图通过NSNotificationCenter目标-C。然而,我还没有找到任何关于如何做到这一点的例子。您如何通过NSNotificationCenter?


小怪兽爱吃肉
浏览 673回答 3
3回答

12345678_0001

@implementation TestClass- (void) dealloc{     // If you don't remove yourself as an observer, the Notification Center     // will continue to try and send notification objects to the deallocated     // object.     [[NSNotificationCenter defaultCenter] removeObserver:self];     [super dealloc];}- (id) init{     self = [super init];     if (!self) return nil;     // Add this instance of TestClass as an observer of the TestNotification.     // We tell the notification center to inform us of "TestNotification"     // notifications using the receiveTestNotification: selector. By     // specifying object:nil, we tell the notification center that we are not     // interested in who posted the notification. If you provided an actual     // object rather than nil, the notification center will only notify you     // when the notification was posted by that particular object.     [[NSNotificationCenter defaultCenter] addObserver:self         selector:@selector(receiveTestNotification:)          name:@"TestNotification"         object:nil];     return self;}- (void) receiveTestNotification:(NSNotification *) notification{     // [notification name] should always be @"TestNotification"     // unless you use this method for observation of other notifications     // as well.     if ([[notification name] isEqualToString:@"TestNotification"])         NSLog (@"Successfully received the test notification!");}@end..在另一个班级的其他地方.。- (void) someMethod{     // All instances of TestClass will be notified     [[NSNotificationCenter defaultCenter]          postNotificationName:@"TestNotification"          object:self];}

holdtom

扩展梦幻松的例子..如果您希望将数据与通知一起发送在张贴代码中:NSDictionary *userInfo = [NSDictionary dictionaryWithObject:myObject forKey:@"someKey"];[[NSNotificationCenter defaultCenter]  postNotificationName:                         @"TestNotification" object:nil userInfo:userInfo];在遵守守则时:- (void) receiveTestNotification:(NSNotification *) notification {     NSDictionary *userInfo = notification.userInfo;     MyObject *myObject = [userInfo objectForKey:@"someKey"];}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS