Как получить NSUserDefaultsDidChangeNotification для iphone - PullRequest
23 голосов
/ 02 июля 2010

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

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

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

Спасибо заранее.

1 Ответ

66 голосов
/ 02 июля 2010

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"]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...