标签:
因为做项目遇到这个问题所以就记录下来,希望你对KVC的理解更加全面。
这里我说的是KVC字典转模型的人时候遇到的。代码如下
+(instancetype)headerModel:(NSDictionary *)dict{
return [[self alloc]initWithDict:dict];
}
-(instancetype)initWithDict:(NSDictionary *)dict{
if (self = [super init]) {
/**
* 这个地方如果用KVC 的话有局限性,因为他都是一一对应的,少一个都不行
*/
[self setValuesForKeysWithDictionary:dict];
// self.detail = dict[@"detail"];
// self.province = dict[@"province"];
}
return self;
}
如下图:
所谓KVC都必须是一一对应的键值对。少一个都会报以上错误
原因如下:
因为KVC会去字典里面找你的键值对,如果找不到的话就会崩掉。
解决方案1:
self.detail = dict[@"detail"];
self.province = dict[@"province"];
对每个键值对自己手动赋值。缺点是:项目复杂的话,以上要写很多。
解决方案2:
用MJExtension非常好用的一个字典转模型的第三方框架。
有什么更好的解决方案可以和我向我提出来。我会非常感激
祝好:
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/tubiebutu/article/details/48089381