Sollte es möglich sein, einen statischen NSNotification Beobachter zu haben (wie der Code unten)? Ich habe einige Probleme, und ich denke, dass es aufgrund meiner Singleton-Klassenstruktur sein kann.Klasse als NSNotification-Beobachter?
Ich habe nicht immer eine Klasseninstanz zum Abhören der Benachrichtigungen, aber die statischen Eigenschaften dieser Klasse bleiben für den Lebenszyklus meiner Anwendung erhalten.
- (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");
}
Es war der Selektor, danke. Ich habe meinen Beitrag bearbeitet, um zu reflektieren, dass ich '[super init]' nannte (ich habe meine gesamte Funktion nicht veröffentlicht). Außerdem habe ich eine Überprüfung, die sicherstellt, dass es nicht mehrmals aufgerufen wird, also ist das auch kein Problem. Hast du einen Link, der zeigen würde, wie man in Objective-C einen "echten Singleton" macht? – Dov
[Der Wikipedia-Eintrag] (http://en.wikipedia.org/wiki/Singleton_pattern#Objective-C) ist ein gutes Beispiel für die zwei Haupttechniken. Ich verwende oft die nicht strikte Implementierung. Siehe auch diese Frage & Antworten: http://stackoverflow.com/questions/145154/what-does-your-objective-c-singleton-look-like – bosmacs