如何在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)