Dans mon application iPad, dans une classe I inscrire une notification:sélecteur NSNotificationCenter pas appelé
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(selectedList:) name:@"TTSelectedList" object:nil];
Ma méthode selectedList:
ressemble à ceci:
- (void)selectedList:(NSNotification*)notification
{
NSLog(@"received notification");
}
Puis dans une autre classe (un UITableViewController
) Je poste cette notification lorsqu'une ligne est sélectionnée:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"posting notification");
[[NSNotificationCenter defaultCenter] postNotificationName:@"TTSelectedList" object:nil];
}
Je peux confirmer que la notification est en cours de publication, car "notification de publication" est enregistrée sur la console, mais "notification reçue" n'est jamais appelée, ce qui signifie que la notification n'est pas reçue et le sélecteur n'a pas été appelé. Je ne peux pas comprendre ce qui cause cela.
Merci
Quelque chose de stupide, mais qui m'a laissé perplexe pendant un moment. J'ai eu le même problème. Dans mon cas, je n'ai pas remarqué qu'une sous-classe avait une méthode avec le même sélecteur que celui que j'essayais de déclarer dans la classe parente. –
Avait moi-même, aussi quelque chose de stupide: Je publiais une notification avec une lettre minuscule au lieu d'une lettre majuscule. Ils sont sensibles à la casse! –