KVC原理

2019-07-15  本文已影响0人  HChase

KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性。

常用的KVC方法

setValue:forKey:的原理

调用原理
调用 setValue:forKey: 方法:

valueForKey: 的原理

调用原理

调用 valueForKey: 方法:

应用

kvc赋值,可以响应kvo回调

    // 添加KVO监听
    [person addObserver:observer forKeyPath:@"age" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];
    
    // 通过KVC修改age属性
    [person setValue:@10 forKey:@"age"];

    // 移除KVO监听
    [person removeObserver:observer forKeyPath:@"age"];

    // 添加KVO监听
    [person addObserver:observer forKeyPath:@"age" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];
    
    // 通过KVC修改age属性
    // 添加KVO监听
    [person addObserver:observer forKeyPath:@"age" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];
    
    // 通过KVC修改age属性
    [person willChangeValueForKey:@"age"];
    person->_age = 10;
    [person didChangeValueForKey:@"age"];
    
    // 移除KVO监听
    [person removeObserver:observer forKeyPath:@"age"];

打印:

observeValueForKeyPath - {
    kind = 1;
    new = 10;
    old = 0;
}
上一篇下一篇

猜你喜欢

热点阅读