En mi aplicación para el iPad, en una clase me registro para una notificación:selector de NSNotificationCenter no siendo llamado
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(selectedList:) name:@"TTSelectedList" object:nil];
Mi método selectedList:
se parece a esto:
- (void)selectedList:(NSNotification*)notification
{
NSLog(@"received notification");
}
Luego, en otra clase (un UITableViewController
) Publiqué esa notificación cuando se selecciona una fila:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"posting notification");
[[NSNotificationCenter defaultCenter] postNotificationName:@"TTSelectedList" object:nil];
}
Puedo confirmar que la notificación se está publicando, porque la "notificación de publicación" se registra en la consola, pero nunca se llama a "notificación recibida", lo que significa que la notificación no se recibe y no se ha llamado al selector. No puedo entender qué está causando esto.
Gracias
Algo estúpido, pero que me dejó perplejo por un tiempo. Tuve el mismo problema. En mi caso, no noté que una subclase tenía un método con el mismo selector que el que estaba tratando de declarar en la clase principal. –
Tenía esto yo mismo, también algo estúpido: estaba publicando una notificación con una letra minúscula en lugar de una letra mayúscula. Son sensibles a mayúsculas y minúsculas –