关于KVC的那些事儿

作者: 狂妄的温柔 | 来源:发表于2016-12-30 16:40 被阅读0次

最近一直在研究KVC,所以和大家分享一下心得吧。KVC,即键值编码,它提供了一种通过使用属性的名称来间接访问对象属性的方法。我们使用KVC时用到的最多的两个方法如下:

基本调用方法

这两个方法可以在接收消息对象没有实现所访问的属性setter和getter方法的情况下,依然为该属性进行赋值和取值操作,私有变量也是如此。

我们可以定义一个类:

.h文件如下:

.m文件如下:

然后我们随便在一个控制器的view did load里对这个类进行初始化:

运行结果如下:

carName已经被正确赋值

接下来我们再看下运用KVC能否对类的私有变量进行取值赋值操作:

普通的赋值方式编译都通不过:

我们换用KVC方式访问如下:

运行结果如下:

也就是说,OC里面并没有真正的私有变量,只要知道变量名称就可以访问并且操作这个变量。

说到这里,还有一个方法setValue:ForKeyPath:,可以通过键路径来操作属性内部的变量

注意别忘了初始化carNumber,否则赋值为nil

运行结果如下:

总结:

KVC是所有的NSObject都具有的特性,利用KVC我们可以为一个类填充很多的属性,当目标类调用setValue:forKey:赋值时,如果目标类里没有这个key,为了防止程序崩溃,我们需要手动实现setValue:(id)value forUndefinedKey:(NSString*)key和valueForUndefinedKey:(NSString*)key这两个方法,用一个字典去接收value,同理,取值时用valueForUndefinedKey:(NSString*)key,根据key从字典取相应的value值。

相关文章

  • 关于KVC的那些事儿

    最近一直在研究KVC,所以和大家分享一下心得吧。KVC,即键值编码,它提供了一种通过使用属性的名称来间接访问对象属...

  • iOS 关于KVC的一些总结(转)

    原文:iOS 关于KVC的一些总结 本文参考: KVC官方文档 KVC原理剖析 iOS KVC详解 KVC 简介 ...

  • 关于计算机培训的那些事儿

    关于计算机培训的那些事儿 ...

  • 关于《关于那些事儿》

    关于《关于那些事儿》 创建这个专题,并没有什么目的性。关于这个专题,也没有什么分类、定义。 正如我对专题的描述,关...

  • 关于那些事儿

    关于爱,不要太爱自己,太爱自己会变的狭隘自私,令人生厌。也不要太爱人,太爱人容易迷失,也容易令人倍感负累。 关于钱...

  • KVC

    1.关于KVC setValue: forKey: 的调用顺序 先找两个set方法 2.关于KVC valueF...

  • 那些关于节日的那些事儿

    临近年关,总感觉周围很多事情都在慢慢变得疏远和辛苦。 自己也变得情绪不可控,总想发脾气,孩子也不听话,自己也总是丢...

  • 关于你,关于那些事儿

    邂逅在2006年的那个秋天,今已十载。细数过往,我们故事的长短若用小说来度量,那一定可以书成一本长篇小说了。只是,...

  • 第1050 050|关于开学的那些事儿

    关于开学的那些事儿 又是一年开学季,在朋友圈到处飘散着的是关于开学的那些事儿,有官方开学通知的,也有表达开学恐惧症...

  • 关于KVC

    KVC是由NSKeyValueCoding非正式协议启用的一种机制,对象通过这种协议间接的访问它的属性。当一个对象...

网友评论

    本文标题:关于KVC的那些事儿

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