1.KVC(key-value-coding)能够让程序通过名称直接存取属性,KVC有关方法定义在NSObject,KVC违背了对象封装理念,因为即使属性声明为readonly,使用KVC依然可以修改实例变量的值。
2.在上面代码中,使用setValue的时候,会首先查找名为setName的存方法,如果没有,则直接为实例变量_name赋值,取方法valueForKey同理。
3.当要存取的变量不是对象的时候,例如int,可以使用NSNumber转换,即取值的时候会得到一个NSNumber,存值的时候存入一个NSNumber。
4.获取对象的某个值时,有时候层级会很深,例如Obj.A.B.C.D.height,KVC也支持这种写法,例如