Estoy intentando pasar un formulario NSDictionary a UIView a un UIViewController usando NSNotificationCenter. El diccionario funciona bien en el momento en que se envía la notificación, pero en el método de recepción no puedo acceder a ninguno de los objetos en el diccionario.Cómo pasar un NSDictionary con postNotificationName: object:
Así es como estoy creando el diccionario y la publicación de la notificación ...
itemDetails = [[NSDictionary alloc] initWithObjectsAndKeys:@"Topic 1", @"HelpTopic", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"HotSpotTouched" object:itemDetails];
En el UIViewController estoy fijando el observador ...
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(hotSpotMore:)
name:@"HotSpotTouched"
object:nil];
Para propósitos de prueba se ve como hotSpotMore esto ...
- (void)hotSpotMore:(NSDictionary *)itemDetails{
NSLog(@"%@", itemDetails);
NSLog(@"%@", [itemDetails objectForKey:@"HelpTopic"]);
}
El primer NSLog funciona bien mostrando los contenidos de th diccionario electrónico El segundo registro arroja la siguiente excepción ...
[NSConcreteNotification objectForKey:]: unrecognized selector sent to instance 0x712b130
No entiendo por qué no puedo acceder a ningún objeto en el diccionario pasado.
Gracias de antemano por cualquier ayuda.
John
Gran !! Gracias que funcionó. Veo que no leí los Temas de programación de notificaciones con suficiente cuidado. – user278859
+1 para que el programa se vuelva sensible e intente engañarte :) –
Publicación antigua, pero sigue siendo muy valiosa. ¡Gracias por eso! Solo una nota rápida: userInfo: tomará un NSDictionary. Si intenta pasar un objeto diferente, deberá insertarlo en un diccionario. – Alex