Как передать userInfo в NSNotification?
Я пытаюсь отправить некоторые данные с помощью 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];
Теперь, как получить этот словарь userInfo в моей ориентации выбораChanged?
Ответы
Ответ 1
Вы получаете объект NSNotification, переданный вашей функции. Это включает имя, объект и информацию о пользователе, которые вы предоставили NSNotificationCenter.
- (void)orientationChanged:(NSNotification *)notification
{
NSDictionary *dict = [notification userInfo];
}
Ответ 2
У вашего селектора должен быть :
, чтобы принимать параметры.
например.
@selector(orientationChanged:)
то в объявлении метода он может принять параметр NSNotification
.
Ответ 3
Вы отправляете уведомление правильно.
Пожалуйста, измените Обозреватель уведомлений, как показано ниже.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
name:@"Abhinav" object:nil];
- (void)orientationChanged:(NSNotification *)notification
{
NSDictionary *dict = [notification userInfo];
}
Надеюсь, это решение будет работать для вас.
Ответ 4
В быстрых
Чтобы получить объект userinfo
let dict = notification.userInfo
print(dict)