KVC: key value coding 键值编码 :可以通过kvc 对对象的属性进行存取操作
valueForkey 先找对象的相关方法,在找对象的相关变量
1. 先找对象的相关方法,如果相关方法找不到
2.那么去判断accessInstanceVariablesDirectly ,是否返回yes (如果不让外界通过kvc的方式访问你的私有变量可以将类方法的accessInstanceVariablesDirectly设置为NO)
3.如果是yes,继续去找对象的相关变量
4.如果是no,直接执行kvc的valueForUndefinedKey ,未定义的key
相关方法指的是:get<key> , <key>
accessInstanceVariablesDirectly ,YES
相关变量指的是: _<key>,_is<key>,<key>,is<key>
在kvc 中如何保持程序的健壮性?
重写对象的valueforkey和setvalueforkey方法。
kvc 中的隐藏方法有什么?
max,min,count,sum 等