Как получить NSUserDefaultsDidChangeNotification iphone

После большого поиска я не смог найти погоду, которой необходимо передать объект словаря:

[NSUserDefaultsDidChangeNotification addObserver: forKeyPath: options: context:];

и что должно быть обеспечено в опциях, если я хочу быть уведомленным даже для единственного изменения в userDefaults. Также, что такое keypath?

Заранее спасибо.

23
задан neha 2 July 2010 в 14:24
поделиться

1 ответ

NSUserDefaultsDidChangeNotification - это просто уведомление, которое отправляется при изменении значений по умолчанию. Чтобы прослушать его, вам понадобится этот код:

    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    [center addObserver:self
               selector:@selector(defaultsChanged:)  
                   name:NSUserDefaultsDidChangeNotification
                 object:nil];

Это вызовет метод defaultsChanged: при срабатывании уведомления. Вам нужно реализовать этот метод следующим образом:

- (void)defaultsChanged:(NSNotification *)notification {
    // Get the user defaults
    NSUserDefaults *defaults = (NSUserDefaults *)[notification object];

    // Do something with it
    NSLog(@"%@", [defaults objectForKey:@"nameOfThingIAmInterestedIn"]);
}
66
ответ дан 29 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: