iOS-KVC

[person setValue:@"xiaomi" forKeyPath:@"dog.name"];

[person valueForKey:"age"]

[person dictionaryWithValuesForKeys:@[@"name",@"age"]]; //模型转字典

forKey和forKeyPath的区别:

forkeyPath包含了所有forKey的功能。

forKeyPath进行内部的点语法,层层访问内部的属性

  key值一定要在属性中找到

KVC可以修改类的私有成员变量

[person setValue:@"22" forKeyPath:@"age"];   age 或 _age都可以, 还可以自动类型转换

不用使用字典时一个一个赋值,而是

[self setValuesForKeysWithDictionary:dict];

但开发中不建议使用:

1. 字典中的key必须在模型的属性中找到,否则报错

2. 如果模型中有模型,不能把子模型转成对象 

字典转模型: MJExtension

取出数组中对象相同的属性

[allPersons valueForKeyPath:@"name"]

 

原文地址:https://www.cnblogs.com/yintingting/p/12755978.html