Domanda

Dovrebbe essere possibile avere una statica NSNotification osservatore (come il codice qui sotto)? Sto avendo alcuni problemi, e penso che potrebbe essere dovuto alla mia struttura di classe Singleton.

io non sempre hanno un'istanza di classe in giro ad ascoltare le notifiche, ma le proprietà statiche di questa classe restare per il ciclo di vita della mia applicazione.

- (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" );
}
È stato utile?

Soluzione

Il primo problema può essere il vostro selettore -. Che dovrebbe essere @selector(action:)

Inoltre, sei sicuro che si desidera registrare la notifica in init (che manca qualsiasi chiamata a [super init], che può essere un altro problema)? Ciò significa che il notifica verrà (ri) registrati ogni volta che si crea un'istanza della classe. Si potrebbe prendere in considerazione l'attuazione di un oggetto Singleton vera invece di metodi di classe.

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