美文网首页
kvc原理的相关知识

kvc原理的相关知识

作者: 书上说says | 来源:发表于2020-08-14 12:06 被阅读0次

kvc-key value coding键值编码:利用不明确的方法对属性进行存取操作

valueForKey(单级属性取值) 的总体规则:
1.先找相关方法,如
1.1 get方法 get<key>
1.2 key同名方法 key
1.3 容器方法 countOf<key> + objectIn<key>AtIndex
2.如果没找到相关方法,会去判断

+ (BOOL)accessInstanceVariablesDirectly

是否返回YES(默认返回YES), accessInstanceVariablesDirectly如果返回了NO,就可以防止外部通过kvc的方式访问内部的成员变量
3.1 如果返回了NO,则会执行

- (id)valueForUndefinedKey:(NSString *)key

系统抛出异常,未找到key
3.2 如果返回了YES,再去找相关变量(_name,_isName,name,isName 优先级大→小)

setValue (存值) 的总体规则:

  1. 查找相关方法
    1.1 set<key>
    1.2 setIs<key>
  2. 如果没有相关方法,判断accessInstanceVariablesDirectly,如果返回NO,则会抛出异常
- (void)setValue:(id)value forUndefinedKey:(NSString *)key

如果返回了YES,则查找相关变量

valueForKey/valueForKeyPath 隐藏方法:
max,min,sum,count
例如: [array valueForKey:@"@count"];查找数组元素个数
[array valueForKey:@"@max"];查找数组最大的元素

相关文章

  • kvc原理的相关知识

    kvc-key value coding键值编码:利用不明确的方法对属性进行存取操作 valueForKey(单级...

  • KVC

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

  • kvc相关的知识

    KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...

  • iOS-KVC相关

    KVC相关 一、 iOS成员变量,实例变量,属性变量的区别 二、KVC取值、赋值原理 *学习方式:1、分析源码 -...

  • iOS原理篇(二): KVC实现原理

    KVC实现原理 什么是 KVC KVC基本使用 KVC 原理 总结 一 、 什么是KVC KVC的全称是Key-V...

  • KVC相关知识(笔记)

    kvc可以通过key来访问对象的某个属性,它常见的方法有: key和keyPath的区别是:如果想要访问的是对象内...

  • KVO和KVC的使用及原理解析

    一 KVO基本使用 二 KVO本质原理讲解及代码验证 三 KVC基本使用 四 KVC设值原理 五 KVC取值原理 ...

  • 05. KVC的使用,原理,本质

    问题 常用的KVC的API; KVC设置值原理图; KVC获取值原理图; 通过KVC修改属性会触发KVO吗? 答案...

  • iOS相关知识(四)-- KVC相关

    1、什么是KVC 2、常见的API有 forKey 和 forKeyPath 主要区别是路径区别如下 3、setV...

  • KVC/KVO原理

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

网友评论

      本文标题:kvc原理的相关知识

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