什么时候用KVC?
当需要做一些快速缩放,平移,二维的旋转时用KVC.
比如: [_imageView.layer setValue:@0.5 forKeyPath:@"transform.scale"]; 快速的进行缩放.
后面forKeyPath属性值不是乱写的.苹果文档当中给了相关的属性.
KVC底层实现
// setValue:forKey:底层实现
// 给模型中的icon属性赋值
// [flag setValue:dict[@"icon"] forKey:@"icon"];
// 1.首先去寻找模型中有木有setIcon:方法,直接调用setIcon:方法,[flag setIcon:dict[@"icon"]]
// 2.接着寻找模型中有没有icon的属性名,如果有,就直接赋值 icon = dict[@"icon"]
// 3.接着寻找模型中有没有_icon的属性名,如果有,就直接赋值 _icon = dict[@"icon"]
// 4.找不到,直接报错,setValue:forUndefinedKey: