Pregunta

Debería ser posible tener un NSNotification observador estático (como el código de abajo)? Estoy teniendo algunos problemas, y creo que puede ser debido a la estructura de mi clase Singleton.

Yo no siempre tienen una instancia de clase en torno a escuchar las notificaciones, pero las propiedades estáticas de este palo de clase durante el ciclo de vida de mi solicitud.

- (id)init {
    [super init]

    [[NSNotificationCenter defaultCenter] addObserver:[self class]
                                             selector:@selector(action:aNotification:)
                                                 name:@"NSSomeNotification"
                                               object:nil];
    return self;
}

+ (void)action:(NSNotification *)aNotification {
    NSLog( @"Performing action" );
}
¿Fue útil?

Solución

El primer problema puede ser su selectora -. Que debería ser @selector(action:)

Además, ¿está seguro de que desea registrar la notificación en init (que falta cualquier llamada a [super init], que puede ser otro problema)? Eso significa que será su notificación (re) registradas cada vez que se crea una instancia de la clase. Se podría considerar la implementación de un verdadero objeto singleton en lugar de los métodos de clase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top