OC语法 KVC

  • Key-Value-Coding 键值编码

可以通过一个Key来访问摸个属性。

常见的API:

  1. setValue:forKeyPath:
  2. setValue:forKey:
  3. valueForKeyPath:
  4. valueForKey:
  • 实现原理
    • setValue:forKey:

      • 通过key 按照 setKey: 、_setKey:的顺序查找方法。
        • 未查到,询问是否可以直接访问成员变量accessInstanceVariablesDirectly:默认返回YES
          • 返回YES。 按照 setKey: 、_setKey:的顺序查找方法修改成员变量。
          • 返回NO。 调用setValue:forUndefinedKey:方法报错。
      • 查到后直接调用。
    • valueForKey:

      • 通过key 按照 getKey: 、key: 、_Key: 、_isKey:的顺序查找方法。
        • 未查到,询问是否可以直接访问成员变量accessInstanceVariablesDirectly:默认返回YES
          • 返回YES。 按照 getKey: 、key: 、_Key: 、_isKey:的顺序查找方法取值。
          • 返回NO。 调用setValue:forUndefinedKey:方法报错。
      • 查到后直接调用。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC的全称是Key-Value Coding,即"键值编码",可以通过一个key来访问某个属性。 常用的Api有...
    iLeooooo阅读 708评论 0 5
  • KVC是Key Value Coding的简称。它是一种可以通过字符串的名字(key)来访问类属性的机制。而不是通...
    _李恒阅读 754评论 0 0
  • KVC是Key Value Coding的简称。它是一种可以通过字符串的名字(key)来访问类属性的机制。而不是通...
    153037c65b0c阅读 11,517评论 15 17
  • 为了表示我对简书『饱醉豚』事件的不满,简书不再更新,后续有文章只更新 个人博客和 掘金 欢迎移步 个人博客或者 掘...
    eagleyz阅读 299评论 0 2
  • 关于KVC 一。 valueForKey:key的调用顺序 1.先用相关方法 (1)先调用getter方法:有三种...
    不掉头发的程序猿阅读 521评论 0 0