经过大量的搜索,我无法找到你需要传递字典对象的东西:
[NSUserDefaultsDidChangeNotification addObserver: forKeyPath: options: context:];
如果我想要通知userDefaults中的单个更改,那么应该在选项中提供什么。还有什么是keypath?
提前完成。
答案 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"]);
}