一,KVC即键/值编码。
二,KVC的基本调用包括-valueForKey:和-setValue:forKey:。
三,对于KVC,Cocoa自动放入和取出标量值。也就是说,当使用setValueForKey时,它自动将标量值(int,float和struct)放入NSNumber和NSVavlue中;当使用-setValueForKey时,它自动将标量值从这些对象中取出。仅KVC具有这种自动包装功能。常规方法调用和属性语法不具备该功能。
四,KVC不是免费的。
KVC能非常轻松的处理集合。那么,为什么不使用KVC来处理所有对象,并且抛弃存取方法和代码编写?天下没有免费的午餐,除非你在硅谷某个技术大公司工作。KVC需要解析字符串计算你需要的答案,因此速度比较慢,此外,编译器还无法对它进行错误检查。你可能想要处理karz.@avg.millage:,但编译器不能判断它是否是错误的键路径。因此,当你尝试使用它时,就会出现运行时错误。
参考资料:《Objective-C基础教程》