Как передать userInfo в NSNotification? - PullRequest
46 голосов
/ 05 октября 2010

Я пытаюсь отправить некоторые данные, используя 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 в моем селекторе

Ответы [ 4 ]

92 голосов
/ 05 октября 2010

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

- (void)orientationChanged:(NSNotification *)notification
{
    NSDictionary *dict = [notification userInfo];
}
23 голосов
/ 05 октября 2010

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

@selector(orientationChanged:)

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

6 голосов
/ 21 марта 2013

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

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

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

Надеюсь, это решение подойдет вам.

0 голосов
/ 06 апреля 2016

в быстром Получить объект userinfo

     let dict = notification.userInfo
     print(dict)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...