KVC

KVC简介:

KVC,即Key-value coding,它是一种使用 字符串 标示符,间接访问 对象属性的机制,而不是直接调用getter和setter方法。通常我们使用valueForKey来替代getter方法,setValue:forKey来替代的方法.

情况一:

工程当中只有一个对象属性不同时,可以使用以下方法:

修改属性的值

- (void)setValue:(id)value forKey:(NSString *)key;

拿到修改后的值

- (id)valueForKey:(NSString *)key;

情况二:

当工程对象有包含关系时,若要改被包含对象的属性值,可以使用(keyPath)属性链式访问来改变属性的值

修改属性的值

- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;

拿到修改后的值

- (id)valueForKeyPath:(NSString *)keyPath;

KVC注意事项:

假如给出的字符串没有对象的属性 会访问 valueForUndefineKey 方法 默认实现是 raise 一个异常 但你可以重写这个方法,setValue的时候也是一样的道理.

KVC代码github托管地址

https://github.com/liukunpengiOS/KVC

git clone 地址

https://github.com/liukunpengiOS/KVC.git

原文地址:https://www.cnblogs.com/liukunpeng/p/3737289.html