总结 KVC 使用的一些注意事项
KVC 注意事项
-
KVC 自动转换类型
-
使用string存基本类型,系统会存为
__NSCFNumber
[person setValue:@"20" forKey:@"age"];
-
结构体类型的值,系统会存为
NSConcreteValue
-
-
设置空值
- 重写 setNilValueForKey 方法
- 给 NSNumber 和 NSValue 类型的属性设置空值时,会走上面的方法
- 其他类型不走这个方法
-
找不到的 key
重写方法setValue: forUndefinedKey:
处理 -
取值时,找不到 key
重写方法valueForUndefinedKey
处理 -
键值验证
validateValue:forKey:error:
validateValue:forKeyPath:error:
可以重写这两个方法来提前处理一些特殊key,避免找不到key
或者其他特殊处理 -
如果
accessInstanceVariablesDirectly
返回为 NO,则setter中无法设置实例变量、getter中无法通过实例变量取值
写到最后,一定要学会 文档思维
网友评论