标签:
1. KVO观察者模式.
给某个实例变量注册一个观察者. 其中 Model为定义的模型 ICBCPrice为模型的实例变量. options的两个值分别是 新值和旧值 context 可以起到表示作用.
[_Model addObserver:self forKeyPath:@"ICBCPrice" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
实施监听, 如果改变ICBCPrice的值就会调用此监听方法;
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
监听的是ICBCPrice 就进入.
if ([keyPath isEqualToString:@"ICBCPrice"]) {
self.ICBCPrice.text = [_Model valueForKey:@"ICBCPrice"];
}
}
删除观察者.
- (void)dealloc
{
//移除观察者.
[self.Model removeObserver:self forKeyPath:@"ICBCPrice"];
}
2 通知中心
其实相当于target-action 或者是代理. 将代理者变成了通知中心. 将委托代理的执行的方法调用变成了发送通知.
注册一条通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(changeNotification:) name:@"myNotification" object:nil];
发送一条通知
[[NSNotificationCenter defaultCenter]postNotificationName:@"myNotification" object:nil];
标签:
原文地址:http://www.cnblogs.com/jfhn/p/4448884.html