码迷,mamicode.com
首页 > 其他好文 > 详细

KVO 通知中心

时间:2015-04-22 23:39:06      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

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

 

KVO 通知中心

标签:

原文地址:http://www.cnblogs.com/jfhn/p/4448884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!