美文网首页
KVC 赋值过程、取值过程

KVC 赋值过程、取值过程

作者: 灰溜溜的小王子 | 来源:发表于2020-10-23 21:36 被阅读0次

赋值过程

1.先找相关方法 set<Key>:, _set<Key>:, setIs<Key>:
2.若没有相关方法+ (BOOL)accessInstanceVariablesDirectly,判断是否可以直接方法成员变量
3.如果是判断是NO,直接执行KVCsetValue:forUndefinedKey:(系统抛出一个异常,未定义key)
4.如果是YES,继续找相关变量_<key>, _is<Key>, <key>, is<Key>
方法或成员都不存在,setValue:forUndefinedKey:方法,默认是抛出异常

取值过程

1.先找相关方法 get<Key>, <key>, is<Key>, _<key>, countOfKey & objectInKeyAtIndex
2.若没有相关方法 + (BOOL)accessInstanceVariablesDirectly,判断是否可以直接方法成员变量
3.如果上面的判断是NO, 直接执行KVC的valueForUnderfinedKey:(系统抛出一个异常,未定义key)
4.如果上面的判断是YES, 继续找相关变量_<key>, _is<Key>, <key>, is<Key>
方法或成员都不存在,valueForUndefinedKey:方法 默认抛出异常

官方文档解释

相关文章

  • KVC 赋值过程、取值过程

    赋值过程 1.先找相关方法 set:, _set:, setIs:2.若没有相关方法...

  • KVC

    一、KVC的原理(赋值取值过程) KVC相关常用的API KVC设置值的原理(setValue: forKey:的...

  • iOS -- KVC取值赋值过程分析

    学习参考,如有错误,欢迎批评指正!!! KVC Key-Value Coding 键值编码,可以通过一个ke...

  • 03--KVC/KVO本质02--KVC 取值&赋值过程

    [TOC] 本章主要探索 KVC 的取值和赋值过程探索过程来源于官方文档:About Key-Value Codi...

  • KVC赋值、取值过程和异常处理

    kvc的作用就不多说了,网上一大堆。这里主要介绍它的赋值和取值过程 赋值过程 先找相关方法 set:,...

  • KVC

    通过KVC修改属性会触发KVO吗 KVC的赋值和取值过程是怎么样的 原理是什么 KVC 常见的API有 setVa...

  • KVC

    01基本使用 通过KVC修改属性会触发KVO么?会触发KVOKVC的赋值和取值过程是怎样的?原理是什么? KVC的...

  • KVC 的本质

    问?直接修改成员变量会触发KVO么?KVC的赋值和取值过程是怎样的?原理是什么? KVC的全称是Key-Value...

  • 底层4:KVC

    面试题:通过KVC修改的属性会触发KVO吗? 会触发KVO。 面试题:KVC的赋值和取值过程是怎样的?原理是什么?...

  • iOS底层原理 - 探寻KVC本质

    面试题引发的思考: Q: KVC的赋值和取值过程是怎样的?原理是什么?Q: 通过KVC修改属性会触发KVO么? 1...

网友评论

      本文标题:KVC 赋值过程、取值过程

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