关于iPad中的关键价值观察者

时间:2011-03-15 14:03:43

标签: iphone ipad

您好我是iPad编程的新手。任何人都可以向我解释如何在iPad中使用键值观察器。我需要检查特定变量值是否已更改并基于此触发一种方法。一种方法是使用NSTimer来连续检查变量值,但我知道这可以通过使用键值观察器来更好地完成,所以请帮助我理解关键值观察者的概念。提前谢谢

1 个答案:

答案 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了解更多信息。