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 地址