我有一个分配给 NSUserDefaults 对象的字符串,但是当值更改时我需要运行代码。如何使用委托来检查 NSUserDefaults 对象值?
问问题
436 次
1 回答
2
嘿,您需要使用KVO (Key Value Observing)
来检查更改NSUserDefaults
使用以下代码注册 KVO
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults addObserver:self forKeyPath:@"YourValue to observer" options:NSKeyValueObservingOptionNew context:NULL];
删除“-viewDidDisappear”中的观察者
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObserver:self forKeyPath:@"YourValue to observer"];
最后实现以下方法接收KVO通知,
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSLog(@"Output : %@ changed property %@ to value %@", object, keyPath, change);
}
于 2013-05-09T04:25:39.210 回答