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 ?
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];
}
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
.
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 ..
En SwiftPour obtenir un objet userinfo
let dict = notification.userInfo
print(dict)