如何接收NSUserDefaultsDidChangeNotification iphone

时间:2010-07-02 14:24:09

标签: iphone nsuserdefaults

经过大量的搜索,我无法找到你需要传递字典对象的东西:

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

如果我想要通知userDefaults中的单个更改,那么应该在选项中提供什么。还有什么是keypath?

提前完成。

1 个答案:

答案 0 :(得分:66)

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"]);
}