KVO 通知中心

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];

 

posted @ 2015-04-22 22:15  jisir  阅读(182)  评论(0编辑  收藏  举报