Frage

Sollte es möglich sein, einen statischen NSNotification Beobachter zu haben (wie der Code unten)? Ich habe einige Probleme haben, und ich denke, es ist wegen meiner Singletonklasse Struktur sein kann.

Ich habe nicht immer eine Klasseninstanz um die Datenübermittlungen zu hören, aber die statischen Eigenschaften dieser Klasse Stick um für meine Anwendung des Lebenszyklus.

- (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" );
}
War es hilfreich?

Lösung

Das erste Problem Ihr Selektor sein kann -. Dass @selector(action:) sein sollte

Auch sind Sie sicher, dass Sie die Meldung in init registrieren möchten (die jeden Anruf [super init] fehlt, was ein weiteres Problem sein kann)? Das heißt, Ihre Mitteilung sein wird (wieder) registriert jedes Mal, wenn eine Instanz der Klasse erstellen. Sie betrachten könnten ein echtes Singleton-Objekt anstelle von Klassenmethoden implementieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top