KVC和KVO

KVC

查找规则:

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

常见用处:

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

注意点:

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

KVO

底层原理

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

Delegate、Notification、KVO优缺点

delegate、notification、KVO各优缺点

参考

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC 什么是KVC KVC是Key-Value-Coding 的简称。 KVC是一种可以直接通过字符串的名字ke...
    Jack_deng阅读 1,109评论 0 0
  • 目录:1.KVC用法;2.KVC和对象的setter、getter方法的区别;3.key和keyPath的区别;4...
    伦伦子_f7b3阅读 607评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • KVC是KVO的技术基础,他们都是利用了OC的动态性。 概念 KVC NSKeyValueCoding[https...
    kyson老师阅读 2,841评论 0 50
  • 本篇采用简单的例子,来介绍 iOS 中的 KVC 和 KVO 的用法和实现原理。 一、KVC 1. KVC是什么 ...
    雷曼同学阅读 875评论 0 4