如何在NSNotification中传递userInfo?
我想使用NSNotification发送一些数据,但卡住了。 这是我的代码:
// Posting Notification NSDictionary *orientationData; if(iFromInterfaceOrientation == UIInterfaceOrientationLandscapeRight) { orientationData = [NSDictionary dictionaryWithObject:@"Right" forKey:@"Orientation"]; } NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; [notificationCenter postNotificationName:@"Abhinav" object:nil userInfo:orientationData]; // Adding observer [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:@"Abhinav" object:nil];
现在如何在我的select器orientationChanged中获取这个userInfo字典?
你得到一个NSNotification对象传递给你的函数。 这包括您提供给NSNotificationCenter的名称,对象和用户信息。
- (void)orientationChanged:(NSNotification *)notification { NSDictionary *dict = [notification userInfo]; }
您的select器必须具有:
接受参数。
例如
@selector(orientationChanged:)
那么在方法声明中它可以接受NSNotification
参数。
您正确发布通知。 请修改通知观察员如下。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"Abhinav" object:nil]; - (void)orientationChanged:(NSNotification *)notification { NSDictionary *dict = [notification userInfo]; }
我希望这个解决scheme能为你工作
在swift中获取用户信息对象
let dict = notification.userInfo print(dict)