您好我是iPad编程的新手。任何人都可以向我解释如何在iPad中使用键值观察器。我需要检查特定变量值是否已更改并基于此触发一种方法。一种方法是使用NSTimer来连续检查变量值,但我知道这可以通过使用键值观察器来更好地完成,所以请帮助我理解关键值观察者的概念。提前谢谢
答案 0 :(得分:2)
假设您已在界面中声明了属性@property (retain) NSNumber myNumber;
然后,您可以使用KVO观察值的变化。
观察更改(例如,将其放在init
方法中)
[self addObserver:self forKeyPath:@"myNumber" options:NSKeyValueObservingOptionNew context:nil];
然后实现以下方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"myNumber"]) {
// do stuff here
}
}
并删除dealloc方法中的观察者:
[self removeObserver:self forKeyPath:@"myNumber"];
您可以参考Key-Value Observing Programming Guide了解更多信息。