美文网首页
KVO键值监听相关

KVO键值监听相关

作者: 莫_名 | 来源:发表于2016-09-20 20:44 被阅读0次

①为被监听对象注册监听器
②重写监听器的observeValueForKeyPath:ofObject:change:context:
③在dealloc中使用removeObserver:forKeyPath:为key路径删除指定的监听器

kvo.png

// 自定义setItem:方法
- (void) setItem:(FKItem*) item
{
    self->_item = item;
    // 为item添加监听器,监听item的name属性的改变
    [self.item addObserver:self forKeyPath:@"name"
    options:NSKeyValueObservingOptionNew
    context:nil];
    // 为item添加监听器,监听item的price属性的改变
    [self.item addObserver:self forKeyPath:@"price"
    options:NSKeyValueObservingOptionNew
    context:nil];
}

// 重写该方法,当被监听的数据模型发生改变时,就会回调监听器的该方法
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object change:(NSDictionary *)change
context:(void *)context
{
    NSLog(@"--observeValueForKeyPath方法被调用--");
    // 获取修改时所设置的数据
    NSLog(@"被修改的keyPath为:%@", keyPath);
    NSLog(@"被修改的对象为:%@", object);
    NSLog(@"新被修改的属性值为:%@", [change objectForKey:@"new"]);
    NSLog(@"被修改的上下文为:%@", context);
}

- (void) dealloc
{
    // 删除监听器
    [self.item removeObserver:self forKeyPath:@"name"];
    [self.item removeObserver:self forKeyPath:@"price"];
}

相关文章

  • KVO键值监听相关

    ①为被监听对象注册监听器②重写监听器的observeValueForKeyPath:ofObject:change...

  • iOS面试题与核心基础之KVC&KVO

    KVO KVO是Key-value observing,俗称键值监听(键值观察),可以用于监听某个属性值的改变。当...

  • OC底层原理学习笔记(二)- KVO、KVC的本质

    一、KVO 1、KVO实现属性监听的原理KVO俗称“键值监听”,可以用于监听某个对象属性值的改变未使用KVO监听的...

  • KVO 相关

    1 . KVO 的基本使用kvo "键值监听", 全称"Key-Value Observing" ,监听对象属性...

  • iOS中KVO

    KVO(Key Value Observing,即键值监听) KVO机制NSKeyValueObserving协议...

  • iOS KVO

    kvo:key-value-observing:键值监听,可以监听某个对象属性的值 前言 使用(kvo 监听foo...

  • KVO - KVC 从根本原理透析

    一.KVO KVO的全称为Key-Value Observing,也就是我们常说的键值监听。通过KVO我们可以监听...

  • iOS KVO KVC

    KVO 什么是KVO? KVO的全称是Key-Value Observing,俗称"键值监听",可以用于监听摸个对...

  • iOS KVO

    一、KVO 简述 KVO 全称 Key Value Observing,俗称“键值监听”;可以监听对象某个属性值的...

  • 关情纸尾---UIKit基础-简述KVC和KVO

    ♥概述 ♥键值编码KVC ♥点语法和KVC ♥ 键值监听KVO ♥KVO的使用步骤也比较简单:

网友评论

      本文标题:KVO键值监听相关

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