美文网首页
KVC-设值

KVC-设值

作者: 一个半吊子工程师 | 来源:发表于2023-04-26 08:57 被阅读0次

当调用setValue:forKey:设置属性value时,其底层的执行流程为:

  1. 首先查找是否有这三种setter方法,按照查找顺序为set<Key>:_set<Key>setIs<Key>
    1.1 如果有其中任意一个setter方法,则直接设置属性的value(要注意:key是指成员变量名,首字符大小写需要符合KVC的命名规范)
    1.2 如果都没有,则进入下一步 2

  2. 查找accessInstanceVariablesDirectly是否返回YES
    2.1 如果返回YES,则查找间接访问的实例变量进行赋值,查找顺序为:_<key>_is<Key><key>is<Key>

  • 如果找到其中任意一个实例变量,则赋值
  • 如果都没有,则进入最后一步 3
    2.2 如果返回NO,则进入最后一步 3
  1. 如果setter方法 或者 实例变量都没有找到,系统会执行该对象的setValue:forUndefinedKey:方法,默认抛出NSUndefinedKeyException类型的异常
image.png

相关文章

  • KVC/KVO 简单理解

    KVC-键值编码,如何使用是关键,其实就是利用KVC动态的取值和设值是最基本的用途;对于类里的私有属性,Objec...

  • KVC与KVO

    KVC-键值编码(Key Value Coding) 动态设置:setValue:属性值 forKey:属性名(用...

  • iOS - KVC

    KVC-键值编码KVC:对象取值或者设置值。KVO:监听对象值的变化。 获取对象值的优先级 OC对象的属性是由3部...

  • KVC-

    1.链接地址:https://www.jianshu.com/p/1d39bc610a5b 2.链接地址:http...

  • 有趣的KVC-几行代码打造一个万能容器对象

    有趣的KVC-几行代码打造一个万能容器对象 有趣的KVC-几行代码打造一个万能容器对象

  • Spring 注入--XML方式

    两种方式:-设值注入 xml 设值property -构造注入 xml constructor-arg <...

  • KVC设值过程

    在KVC的实现中,依赖setter和getter的方法实现,所以方法命名应该符合苹果要求的规范,否则会导致KVC失...

  • spring ioc注入demo

    设值注入 构造器注入

  • 02 autowire注解的使用

    @Autowired:该注解应用于有值设值方法、非设值方法、构造方法和变量。 bean文件 换句话理解是省去了ge...

  • T0005判别式法(万能t)

    Litiの1 设 x , y 为实数 , 若的最大值 . Litiの2 设实数 求 的最小值. Timoの1...

网友评论

      本文标题:KVC-设值

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