Подтвердить что ты не робот

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

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

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

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

Thanx заранее.

4b9b3361

Ответ 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"]);
}