zoukankan      html  css  js  c++  java
  • iOS 常用设计模式和机制之 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:方法。这些方法的默认实现都是抛出异常,我们可以根据需要重写他们。

  • 相关阅读:
    视频编码之释——从H.261 到H.264
    bitmap图像介绍
    用搜索引擎搜索我的名字 @_@
    blog标题由来
    ORACLE双机热备安装及物理迁移 for win2000
    审核再次失败
    asp.net学习历程
    痛并快乐着
    开心,blog点击率超过1000
    XP下ASP.NET不能访问ORACLE数据库的解决方案
  • 原文地址:https://www.cnblogs.com/chenbowen/p/6030166.html
Copyright © 2011-2022 走看看