03--KVC/KVO本质04--KVC 注意事项

总结 KVC 使用的一些注意事项

KVC 注意事项

  1. KVC 自动转换类型

    • 使用string存基本类型,系统会存为 __NSCFNumber

      [person setValue:@"20" forKey:@"age"];
      
    • 结构体类型的值,系统会存为 NSConcreteValue

  2. 设置空值

    • 重写 setNilValueForKey 方法
    • 给 NSNumber 和 NSValue 类型的属性设置空值时,会走上面的方法
    • 其他类型不走这个方法
  3. 找不到的 key
    重写方法 setValue: forUndefinedKey: 处理

  4. 取值时,找不到 key
    重写方法 valueForUndefinedKey 处理

  5. 键值验证
    validateValue:forKey:error:
    validateValue:forKeyPath:error:
    可以重写这两个方法来提前处理一些特殊key,避免找不到 key 或者其他特殊处理

  6. 如果 accessInstanceVariablesDirectly 返回为 NO,则setter中无法设置实例变量、getter中无法通过实例变量取值


写到最后,一定要学会 文档思维

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容