web-dev-qa-db-fra.com

Comment passer userInfo dans NSNotification?

J'essaie d'envoyer des données à l'aide de NSNotification mais reste bloqué. Voici mon code:

// 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];

Maintenant, comment récupérer ce dictionnaire userInfo dans mon sélecteur orientationChanged ?

46
Abhinav

Vous obtenez un objet NSNotification transmis à votre fonction. Cela inclut le nom, les objets et les informations utilisateur que vous avez fournis à NSNotificationCenter.

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

Votre sélecteur doit avoir : pour accepter les paramètres.
par exemple.

@selector(orientationChanged:)

puis, dans la déclaration de méthode, il peut accepter le paramètre NSNotification.

23
Manny

Vous publiez correctement la notification . Veuillez modifier Notification Observer comme suit.

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

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

J'espère que cette solution fonctionnera pour vous ..

5
Amit Singh

En SwiftPour obtenir un objet userinfo

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