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:方法。这些方法的默认实现都是抛出异常,我们可以根据需要重写他们。

  • 相关阅读:
    2019 SDN阅读作业
    第02组 Alpha冲刺(2/6)
    2019 SDN上机第3次作业
    第02组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
    bzoj 3207 可持久化线段树
    bzoj 3524 可持久化线段树
    HDU 4757 可持久化trie树
    bzoj 3197 DP
    poj 2104 可持久化线段树
  • 原文地址:https://www.cnblogs.com/chenbowen/p/6030166.html
Copyright © 2011-2022 走看看