美文网首页iOS高级技术文章
03--KVC/KVO本质04--KVC 注意事项

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

作者: 修_远 | 来源:发表于2020-07-02 22:33 被阅读0次

总结 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中无法通过实例变量取值


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

相关文章

网友评论

    本文标题:03--KVC/KVO本质04--KVC 注意事项

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