美文网首页
(一)OC语法02(KVO与KVC)

(一)OC语法02(KVO与KVC)

作者: cdd48b9d36e0 | 来源:发表于2018-08-27 16:09 被阅读7次

1、KVO

KVO的作用是监听对象的属性的改变。重点之一就是必须是触发了属性的setter方法才会触发KVO,只是修改成员变量的值是不会触发KVO的

未使用KVO监听的对象
使用了KVO监听的对象

绿色的都是重写的方法

_NSSet*ValueAndNotify的内部实现

由图可知,要想手动触发KVO时,只需调用will和change两个方法,缺一不可

2、KVC

setValue:forKey:的原理
valueForKey:的原理

注:用KVC赋值的时候,即使没有实现set方法也会触发KVO(如果使用了的话),这是因为KVC底层实际上会调用willChange和didChange那两个方法

相关文章

网友评论

      本文标题:(一)OC语法02(KVO与KVC)

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