from - Cómo recibir el iPhone de NSUserDefaultsDidChangeNotification
swift 4 userdefaults standard (1)
Después de mucho buscar, no pude encontrar si necesitas pasar un objeto de diccionario a:
[NSUserDefaultsDidChangeNotification addObserver: forKeyPath: options: context:];
y qué se debe proporcionar en las opciones si quiero que se me notifique incluso por un solo cambio en los valores predeterminados del usuario. Además, ¿qué es keypath?
Gracias de antemano.
NSUserDefaultsDidChangeNotification
es solo una notificación que se envía cuando se cambian los valores predeterminados. Para escucharlo necesitas este código:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(defaultsChanged:)
name:NSUserDefaultsDidChangeNotification
object:nil];
Esto llamará al método defaultsChanged: cuando se active la notificación. Necesitas implementar este método así:
- (void)defaultsChanged:(NSNotification *)notification {
// Get the user defaults
NSUserDefaults *defaults = (NSUserDefaults *)[notification object];
// Do something with it
NSLog(@"%@", [defaults objectForKey:@"nameOfThingIAmInterestedIn"]);
}