KVC和KVO

KVC

查找规则:

先查找和直接写入的字符串相同的成员变量,如果找不到就找以下划线开头的成员变量。

常见用处:

  • 对私有变量进行赋值;
  • 字典转模型。

注意点:

  • 字典转模型的时候,字典中的某一个key一定要在模型中有对应的属性。
  • 如果一个模型中包含了另外的模型对象,是不能直接转化成功的。
  • 通过kvc转化模型中的模型,也是不能直接转化成功的。

KVO

底层原理

当一个类的属性被观察的时候,系统会通过runtime动态的创建一个该类的派生类,并且会在这个类中重写基类被观察的属性的setter方法,而且系统将这个类的isa指针指向了派生类,从而实现了给监听的属性赋值时调用的是派生类的setter方法。重写的setter方法会在调用原setter方法前后,通知观察对象值得改变。

Delegate、Notification、KVO优缺点

delegate、notification、KVO各优缺点

参考

KVC和KVO
KVC官方文档
KVO官方文档

你可能感兴趣的:(KVC和KVO)