it-swarm.com.ru

Как передать 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 в моем селекторе directionChanged ?

46
Abhinav

Вы получаете объект NSNotification, переданный вашей функции. Это включает в себя имя, объект и информацию о пользователе, которые вы предоставили NSNotificationCenter.

- (void)orientationChanged:(NSNotification *)notification
{
    NSDictionary *dict = [notification userInfo];
}
92
JustSid

Ваш селектор должен иметь : для принятия параметров.
например.

@selector(orientationChanged:)

затем в объявлении метода он может принять параметр NSNotification.

23
Manny

Вы публикуете уведомление правильно Пожалуйста, измените Notification Observer следующим образом.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
 name:@"Abhinav" object:nil];

- (void)orientationChanged:(NSNotification *)notification
{
    NSDictionary *dict = [notification userInfo];
}

Я надеюсь, что это решение будет работать для вас ..

5
Amit Singh

В Swift для получения объекта userinfo

     let dict = notification.userInfo
     print(dict)
0
amisha.beladiya