Nel mio iPad, in una classe mi iscrivo ad una notifica:selettore NSNotificationCenter non essere chiamato
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(selectedList:) name:@"TTSelectedList" object:nil];
Il mio metodo selectedList:
assomiglia a questo:
- (void)selectedList:(NSNotification*)notification
{
NSLog(@"received notification");
}
Poi, in un'altra classe (un UITableViewController
) Inserisco la notifica quando viene selezionata una riga:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"posting notification");
[[NSNotificationCenter defaultCenter] postNotificationName:@"TTSelectedList" object:nil];
}
Posso confermare che la notifica è stata inviata, perché "notifica di pubblicazione" è registrata nella console, ma "notifica ricevuta" non viene mai chiamata, il che significa che la notifica non viene ricevuta e il selettore non è stato chiamato. Non riesco a capire cosa sta causando questo.
Grazie
Qualcosa di stupido, ma che mi ha lasciato perplesso per un po '. Ho avuto lo stesso problema. Nel mio caso, non ho notato che una sottoclasse aveva un metodo con lo stesso selettore di quello che stavo cercando di dichiarare nella classe genitore. –
Lo avevo anche io, anche qualcosa di stupido: stavo inviando una notifica con una lettera minuscola invece di una lettera maiuscola. Sono case sensitive! –