美文网首页iOS 底层原理探究
KVC(一)KVC的基本使用

KVC(一)KVC的基本使用

作者: PerryMorning | 来源:发表于2019-11-12 22:39 被阅读0次

KVC(Key-value coding)键值编码,从字面意思来看,就是可以通过对象的key名进行访问,达到存取值的目的,这里的key名包含属性名、公有成员变量、私有成员变量和对象属性的属性。可以在运行时动态的修改属性的值,特别是当我们使用第三方库,但是对方又没有将我们想要修改的属性暴露出来时,使用KVC来实现就比较简单了。下面我们一起来看一下KVC的基本使用。

在Object-C和Swift中,KVC都是通过NSObject的扩展来实现,也就是说所有继承自NSObject的实例对象都可以使用KVC。首先看我们最常用的赋值、取值API:

- (void)setValue:(nullableid)valueforKey:(NSString*)key;    //赋值操作,通过key名直接赋值

-(nullable id)valueForKey:(NSString*)key;                           //取值操作,对应上面的赋值

-(void)setValue:(nullable id)value forKeyPath:(NSString*)keyPath;//赋值操作,通过KeyPath来设值,形式类似a.b.c

-(nullable id)valueForKeyPath:(NSString*)keyPath;          //取值操作,对应setValueForKeyPath。

下面我们来看一个简单地例子:

然后我们分别使用上面介绍的四个API来进行赋值和取值操作:

结果如下:

很明显,我们使用KVC分别对属性、私有成员变量、公共成员变量和对象的属性进行赋值,并取出,形成闭环。这就是KVC的基本使用情况。

细心的朋友可能已经发现,我们生命的成员变量是_height和_weight,但是我们在进行赋值操作时,key名为“height”和“weight”,也能赋值成功,这是为什么呢?下篇文章我们仔细分析KVC的内部实现逻辑。

相关文章

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

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

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

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

  • 03--KVC/KVO本质04--KVC 注意事项

    总结 KVC 使用的一些注意事项 KVC 注意事项 KVC 自动转换类型使用string存基本类型,系统会存为 _...

  • KVC 相关

    1 .KVC 的基本使用kvc 相关的基本方法包括 设置属性值:::setValue: forKey: ;se...

  • KVC(一)KVC的基本使用

    KVC(Key-value coding)键值编码,从字面意思来看,就是可以通过对象的key名进行访问,达到存取值...

  • KVC详解

    KVC 目录结构KVC定义KVC取值和设置KVC使用keyPathKVC处理字典KVC作用 参考:iOS KVC和...

  • 【iOS】KVC的实现

    KVC的基本使用 KVC的基本原理 setValue:forKey 验证在MJPerson中重写这几个方法,首先打...

  • OC语法:KVC的底层实现

    一、KVC是什么二、怎么使用KVC三、KVC的底层实现四、KVC常见面试题 一、KVC是什么 KVC全称Key-V...

  • 19.iOS底层学习之iOS底层学习之KVC

    本篇提纲1、KVC的基本介绍2、KVC的API3、KVC的写入过程4、KVC的读取过程5、自定义KVC KVC的基...

  • KVC

    KVC基本使用 KVC赋值 按照setKey: -> _setKey ->的顺序查找方法,如果上述方法不存在,判断...

网友评论

    本文标题:KVC(一)KVC的基本使用

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