KVC原理

  • Post author:
  • Post category:其他


1.KVC定义


KVC

全称是

Key Value Coding

,定义在

NSKeyValueCoding.h

文件中,是一个

非正式协议



KVC

提供了一种间接访问其属性方法或成员变量的机制,可以通过字符串来访问对应的属性方法或成员变量。



NSKeyValueCoding

中提供了

KVC

通用的访问方法,分别是

getter

方法

valueForKey:



setter

方法

setValue:forKey:

,以及其衍生的

keyPath

方法,这两个方法各个类通用的。并且由

KVC

提供默认的实现,我们也可以自己重写对应的方法来改变实现。

2.KVC基本操作

(1)使用

KVC

时,直接将属性名当做

key

,并设置

value

,即可对属性进行赋值。

[myAccount setValue:@(20.0) forKey:@"age"];

(2)keyPath 用法


除了对当前对象的属性进行赋值外,还可以对其更“深层”的对象进行赋值。

例如对当前对象的

address

属性的

street

属性进行赋值。

KVC

进行多级访问时,直接类似于属性调用一样用点语法进行访问即可。

[myAccount setValue:@"十里河" forKeyPath:@"address.street"];

3.KVC的赋值原理



版权声明:本文为zcvbnh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。