KVC


key-value-coding

通过key值去取值和赋值

主要方法

setValue:forKey:(为对象的属性赋值)

setValue: forKeyPath:(为对象的属性赋值(包含了setValue:forKey:的功能,并且还可以对对象内的类的属性进行赋值))

valueForKey:(根据key取值)

valueForKeyPath:(根据keyPath取值)

setValuesForKeysWithDictionary:(对模型进行一次性赋值)

KVC和setter和getter方法的区别

可以给私有属性赋值

valueForKeyPath和valueForKey的区别

valueForKeyPath可以给属性的属性赋值

赋值原理

1.去模型中查看是否有setter方法,有就直接调用

2.查看是否有属性icon,有就直接赋值 icon = dict[@"icon"]

3.查看是否有_icon属性,有就直接赋值_icon=dict[@"icon"]

keyPath的巧妙用法

将people中所有的name首字母大写

[array valueForKeyPath:@"name.capitalizedString"]

你可能感兴趣的:(KVC)