OC 常用设计模式和机制之 KVC

Posted 陈博文

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC 常用设计模式和机制之 KVC相关的知识,希望对你有一定的参考价值。

KVC 

  1  key Value Coding,键值编码,是一种间接访问实例变量的方法

  2  KVC 提供了一种使用字符串(key)而不是访问器方法,去访问一个对象实例变量的机制

  3  KVC 常用方法

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

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

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

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

  -(void) setValuesForKeysWithDictionary:(NSDictionary *)keyedValues;

  4 注意:当使用 KVC 时,如果 key 值和属性名不一样时,就会崩溃。

  解决崩溃方法:需要在 类中重写一下两个方法

  -(void) setValue:(id)value forUnderfinedKey:(NSString *)key{

}

  -(id) valueForUndefinedKey:(NSString *)key{

}

  5 KVC 实现机制

    KVC按顺序使用如下技术:

  (1)检查是否存在  getter 方法 -<key>或者setter方法-set<key>:的方法

  (2)如果没有上述方法,则检查是否存在名字为-_<key>、<key>的实例变量

  (3)如果仍然未找到,则调用 valueForUnderfinedKey: 和 setValue:forUndefinedKey:方法。这些方法的默认实现都是抛出异常,我们可以根据需要重写他们。

 

以上是关于OC 常用设计模式和机制之 KVC的主要内容,如果未能解决你的问题,请参考以下文章

OC常用设计模式机制之KVO

iOS开发-OC篇-KVC详解

[OC学习笔记]KVC原理

[OC学习笔记]KVC原理

iOS设计模式 —— KVC

iOS开发之Runtime机制深入解析