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