Centro NSNotification potrebbe non rispondere alle -Oggetto?
-
27-09-2019 - |
Domanda
Sto cercando di fare uso semplice del centro NSNotification dentro la mia applicazione per iPhone, ma mi sembra di fare qualcosa di sbagliato in questo caso. Ho avuto l'impressione che fosse possibile recuperare un oggetto associato a un particolare messaggio, o almeno un riferimento all'oggetto, ma utilizzando il seguente codice di esempio sto diventando un avvertimento,
"centro NSNotification non può rispondere a -Oggetto"
- (void)addNewBookmark:(NSNotificationCenter *)notification {
Bookmark *newBookMark = (Bookmark *)[notification object];
//Do some stuff with the bookmark object
}
In effetti, quando ho compilare ed eseguire il codice, in fondo, non cerco di fare con il contenuto dell'oggetto in realtà viene effettuata -. È semplicemente ignorato
Il codice postale è il seguente,
- (IBAction)save:(id) sender{
//Sending the message with the related object
[[NSNotificationCenter defaultCenter]
postNotificationName:@"addNewBookmark"
object:bookmark];
}
e l'oggetto segnalibro in sé è solo un dizionario. Ho anche provato ad utilizzare l'argomento "userInfo" e passando l'oggetto segnalibro attraverso quella, ma il risultato era lo stesso.
Come dovrei fare questo? Che cosa sto facendo di sbagliato?
Soluzione
Il tuo metodo addNewBookmark:
dovrebbe accettare un NSNotification, non un NSNotificationCenter.
NSNotification dovrebbe rispondere a -object
come previsto.
Un centro di notifica è l'oggetto incaricato di tenere traccia di chi ascolta e l'invio di notifiche (non centri) a loro.