KVO,即:Key-Value Observing,每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者。
//设置开始属性值
float temp = 10.0;
[my setValue:[NSString stringWithFormat:@"%f", temp] forKey:@"p"];
//回调方法
[button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
- (void)buttonAction
{
float temp = 20.0;
[my setValue:[NSString stringWithFormat:@"%f", temp] forKey:@"p"];
}
系统框架已经支持KVO。
//更新myLabel的值
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"p"]) {
myLabel.text = [my valueForKey:@"p"];
}
}