美文网首页
iOS KVC setValue: forKey: 和 valu

iOS KVC setValue: forKey: 和 valu

作者: shizidy_90 | 来源:发表于2020-06-16 21:55 被阅读0次

当我们调用setValue: forKey:时,内部对key的查找顺序是这样的:
1.首先查找setKey: 然后_setKey:方法是否存在,找到了就传参调用,没有找到setKey:_setKey:方法会调用accessInstanceVariablesDirectly方法,该方法返回值是Bool类型,方法内部如果返回NO,就会调用setValue: forUndefinedKey: 并抛出异常NSUnknownKeyException,如果返回YES,则按照_key --> _isKey --> key --> isKey的顺序查找成员变量,找到了成员变量就直接取值,如果没有找到,就调用setValue: forUndefinedKey: 并抛出异常NSUnknownKeyException
流程图如下:

截屏
当我们调用valueForKey:时,流程图如下:
截屏

相关文章

  • iOS KVC setValue: forKey: 和 valu

    当我们调用setValue: forKey:时,内部对key的查找顺序是这样的:1.首先查找setKey: 然后_...

  • KVC/KVO原理

    KVC/KVO原理 KVC setValue:forKey原理 调用setValue:forKey:方法,会直接寻...

  • iOS 13适配

    iOS 13 适配 1. 私有属性KVC iOS不允许valueForKey、setValue: forKey ...

  • KVC

    KVC(NSKeyValueCoding) 常用的KVC方法:setValue: forKey:与setValue...

  • iOS13适配

    私有KVC iOS不允许valueForKey、setValue: forKey获取和设置私有属性,需要使用其它方...

  • IOS KVC,KVO

    KVC KVC是key Value Coding的缩写,主要方法有setValue:forKey和valueFor...

  • iOS --- 关于KVC使用的一些小技巧

    KVC是iOS开发中经常会用到的技巧, 主要包括valueForKey:/setValue:ForKey:, va...

  • KVC & KVO 浅析

    KVC部分 KVC的设值过程:( 即 [person setValue:@"beckhams" forKey:@"...

  • iOS13 适配

    1.私有KVC [self setValue:baseTabBar forKey:@"tabBar"]; //正常...

  • OC 中字典的取值赋值

    写在前面 setValue:Forkey和valueForKey是KVC方法,在NSObject/NSDictio...

网友评论

      本文标题:iOS KVC setValue: forKey: 和 valu

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