美文网首页
KVC(1) 概述

KVC(1) 概述

作者: yxibng | 来源:发表于2020-01-21 22:22 被阅读0次

    概述

    1. kvc 提供了间接访问对象属性的一种方法,是被NSKeyValueCoding 协议来驱动的
    2. 如果一个对象遵从了kvc,这个对象的属性可以通过字符串(key, key有一套明确的,统一的接口定义)来存取。
    3. 是在setter和getter 方法之外,另一种访问对象属性的方法。

    kvc 可以实现的功能

    • 访问对象属性
      valueForKey:
      setValue:forKey:
      
      
    • 操纵集合属性
      mutableArrayValueForKey: 
      mutableArrayValueForKeyPath:
      
      mutableSetValueForKey: 
      mutableSetValueForKeyPath:
      
      mutableOrderedSetValueForKey: 
      mutableOrderedSetValueForKeyPath:
      
    • 在集合属性上调用集合方法
      @avg
      @count
      @max
      @min
      @distinctUnionOfObjects
      @unionOfObjects
      @distinctUnionOfArrays
      @unionOfArrays
      @distinctUnionOfSets
      
    • 访问基本类型(int,BOOL, float..)和结构体类型(NSPoint,NSSize ,自定义结构体, ...)的属性
      基本类型 需要用NSNumber来包装一下,例如
      BOOL-numberWithBool:-boolValue 
      int-numberWithInt:-intValue
      
      结构体类型 需要用NSValue来包装一下, 例如
      NSPoint-valueWithPoint:-pointValue
      NSSize-valueWithSize:-sizeValue
      
      
      使用NSValue包装其他的非对象类型,例如
      ThreeFloats floats = {1., 2., 3.};
      NSValue* value = [NSValue valueWithBytes:&floats objCType:@encode(ThreeFloats)];
      [myClass setValue:value forKey:@"threeFloats"];
      
      
    • 通过key path来访问属性,可以很方便的通过路径去访问深层次的属性
       valueForKeyPath:;
       setValue: forKeyPath:
      

    相关文章

      网友评论

          本文标题:KVC(1) 概述

          本文链接:https://www.haomeiwen.com/subject/auhyzctx.html