我正在尝试使用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];
现在如何在我的选择器 orientationChanged 中获取此userInfo字典?
答案 0 :(得分:92)
您获得了传递给您的函数的NSNotification对象。这包括您提供给NSNotificationCenter的名称,对象和用户信息。
- (void)orientationChanged:(NSNotification *)notification
{
NSDictionary *dict = [notification userInfo];
}
答案 1 :(得分:23)
您的选择器必须:
才能接受参数
e.g。
@selector(orientationChanged:)
然后在方法声明中它可以接受NSNotification
参数。
答案 2 :(得分:6)
您正在正确发布通知。 请修改通知观察器,如下所示。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
name:@"Abhinav" object:nil];
- (void)orientationChanged:(NSNotification *)notification
{
NSDictionary *dict = [notification userInfo];
}
我希望,这个解决方案对你有用..
答案 3 :(得分:0)
迅速 获取userinfo对象
let dict = notification.userInfo
print(dict)