响应式编程
在程序开发中:
a = b + c赋值之后 b 或者 c 的值变化后,a 的值不会跟着变化
响应式编程,目标就是,如果 b 或者 c 的数值发生变化,a 的数值会同时发生变化;
相当于两个具有某种联系的对象,一个对象的变化另一个对象作出相应的动作,
这就是我们所理解的KVO或者通知的原理吧!
KVO实现过程解析:
创建一个person类:
子类实现:
观察者:
检验:
//创建一个父类的对象
Person *p = [[Person alloc] init];
p.age = 0;
_person = p;
//调用新的注册观察者方法
[p ZHZ_addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionNew context:nil];
}
响应:
//响应方法
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
NSLog(@"Person Age %d Changed",_person.age);
}