Sto provando a passare un modulo NSDictionary un UIView a un UIViewController utilizzando NSNotificationCenter. Il dizionario funziona correttamente al momento della pubblicazione della notifica, ma nel metodo di ricezione non riesco ad accedere a nessuno degli oggetti nel dizionario.Come passare un NSDictionary con postNotificationName: oggetto:
Ecco come sto creando il dizionario e la pubblicazione della notifica ...
itemDetails = [[NSDictionary alloc] initWithObjectsAndKeys:@"Topic 1", @"HelpTopic", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"HotSpotTouched" object:itemDetails];
Nel UIViewController io pongo l'osservatore ...
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(hotSpotMore:)
name:@"HotSpotTouched"
object:nil];
A scopo di verifica hotSpotMore assomiglia questo ...
- (void)hotSpotMore:(NSDictionary *)itemDetails{
NSLog(@"%@", itemDetails);
NSLog(@"%@", [itemDetails objectForKey:@"HelpTopic"]);
}
Il primo NSLog funziona bene visualizzando i contenuti di e dizionario Il secondo registro getta la seguente eccezione ...
[NSConcreteNotification objectForKey:]: unrecognized selector sent to instance 0x712b130
Non capisco perché non posso accedere a qualsiasi oggetto nel dizionario passato.
Grazie in anticipo per qualsiasi aiuto.
John
Great !! Grazie, ha funzionato Vedo che non ho letto gli argomenti di notifica di programmazione con sufficiente attenzione. – user278859
+1 per il programma di diventare senziente e cercando di ingannare voi :) –
Vecchio post, ma ancora molto prezioso. Grazie per questo! Solo una breve nota: userInfo: ci vorrà un NSDictionary. Se si sta cercando di passare un oggetto diverso si dovrà inserire in un dizionario. – Alex