-4

我有一个分配给 NSUserDefaults 对象的字符串,但是当值更改时我需要运行代码。如何使用委托来检查 NSUserDefaults 对象值?

4

1 回答 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 回答