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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top