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"]

 

 

posted @ 2020-04-22 21:07  Emyin  阅读(81)  评论(0编辑  收藏  举报