美文网首页
KVO的使用

KVO的使用

作者: eryuxinling | 来源:发表于2016-07-30 17:21 被阅读20次
    KVO: Key Value Observing (键值监听)---> 当某个对象的属性值发生改变的时候(用KVO监听)
    
    SJMPerson *person = [[SJMPerson alloc] init];
        person.name = @"zs";
        
        /**
         *  作用:给对象绑定一个监听器(观察者)
         *  - Observer 观察者
         *  - KeyPath 要监听的属性
         *  - options 选项(方法中拿到属性值)
         */
        [person addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
        
        person.name = @"ls";
        
        person.name = @"ww";
        
        // 移除监听
        [person removeObserver:self forKeyPath:@"name"];
    
    // 添加观察者就会自动调用下面方法
    /**
     *  当监听的属性值发生改变
     *
     *  @param keyPath 要改变的属性
     *  @param object  要改变的属性所属的对象
     *  @param change  改变的内容
     *  @param context 上下文
     */
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
        NSLog(@"%@---%@---%@", keyPath, object, change);
    }
    

    相关文章

      网友评论

          本文标题:KVO的使用

          本文链接:https://www.haomeiwen.com/subject/krrtsttx.html