博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KVC与KVO的一些理解
阅读量:6855 次
发布时间:2019-06-26

本文共 717 字,大约阅读时间需要 2 分钟。

hot3.png

    KVC(key-value-coding,键值编码)

    kvc是一种通过字符串去间接操作对象属性的一种机制,例如,访问一个对象的属性person.age时。使用kvc的方式:[person valueforkey:@"age"];

    kvc为OC语言动态运行时机制的一种体现,任何NSObject类型的对象都支持kvc。

    KVO(key-value-observer)

    kvo就是在一个语言框架层面实现的观察者模式,通过kvc的方式去改变属性时,会主动通知观察者,对符合kvc键值编码的变量的观察,主要对变量赋值操作的观察

    [_model addObserver:self forKeyPath:@"price" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

    

    //键值观察者要实现的函数

    //第一个参数 就是监听的 对象属性名

    //第二个参数 监听的对象

    //第三个参数 改变的内容  如果设置过NSKeyValueObservingOptionNew 就可以获取对象属性的新值

    //如果设置NSKeyValueObservingOptionOld 可以获取对象属性的旧值

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{

    }

转载于:https://my.oschina.net/u/2425915/blog/499665

你可能感兴趣的文章