首页 > 其他 > 详细

KVO

时间:2016-04-17 20:44:09      阅读:174      评论:0      收藏:0      [点我收藏+]

作用

监听对象的某个属性,如果发生修改会调用observeValueForKeyPath方法

使用步骤

  • 增加监听器

      self.shop=[[Shop alloc]init];
    
      [self.shop addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew| NSKeyValueObservingOptionOld  | NSKeyValueObservingOptionPrior | NSKeyValueObservingOptionInitial context:@"ttt"];
    

    代码解释与说明: 使用self监听shop对象的name属性
    options的四个参数:
    NSKeyValueObservingOptionInitial(记录初始值)无论name属性是否发生修改都会调用监听方法
    其他的属性都是调用shop的name的set方法才会调用监听方法

  • 实现监听方法

    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
    {
      NSLog(@"监听%@对象的%@属性",[object class],keyPath);
      NSLog(@"%@%@",change,context);
    }
    

    方法说明:
    该方法在object里面声明,任何对象都可实现

  • 程序结束移除,不再监听
    -(void)dealloc
    {
      [self.shop removeObserver:self forKeyPath:@"name"];
    }
    
    方法说明:移除监听

KVO

原文:http://www.cnblogs.com/JavaTWW/p/5401977.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!