10 Stimmen

NSUserDefaults und KVO-Probleme

Ich verwende NSUserDefaults in meiner Anwendung und möchte benachrichtigt werden, wenn ein bestimmter Wert geändert wird. Dazu habe ich die folgenden Zeilen in viewDidLoad hinzugefügt:

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings synchronize];
[settings addObserver:self forKeyPath:@"pref_server" options:NSKeyValueObservingOptionNew context:NULL];

Und die zu benachrichtigende Methode:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{

    NSLog(@"Change");

    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
    if (object == settings && [keyPath isEqualToString:@"pref_server"])
    {
        NSLog(@"Server did change");
    }

}

Leider wird letzteres nie aufgerufen...@"pref_server" ist der Elementbezeichner, den ich in der Root.plist in Settings.bundle festgelegt habe. Was mache ich falsch?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X