经过大量搜索,我没有找到是否需要将字典对象传递给:
[NSUserDefaultsDidChangeNotification addObserver: forKeyPath: options: context:];
如果我想在userDefaults发生单个更改时收到通知,那么在选项中应提供什么?另外,什么是keypath?
经过大量搜索,我没有找到是否需要将字典对象传递给:
[NSUserDefaultsDidChangeNotification addObserver: forKeyPath: options: context:];
如果我想在userDefaults发生单个更改时收到通知,那么在选项中应提供什么?另外,什么是keypath?
NSUserDefaultsDidChangeNotification
是在默认设置更改时发送的通知。要监听它,您需要使用以下代码:
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"]);
}