美文网首页糖糖的iOS专题iOS学习开发iOS进阶指南
KVC字典转模型以及常见错误解决(接上昨晚的自动生成属性)

KVC字典转模型以及常见错误解决(接上昨晚的自动生成属性)

作者: 我的梦想之路 | 来源:发表于2016-06-11 23:04 被阅读107次

接上昨晚的数据源继续用,然后将自动生成的属性贴在模型中

# .h 文件中是属性(就不用我写了吧  T_T)
#模型的属性名跟字典 -- 一 一对应
// 属性 


// 定义一个类方法进行字典转模型
+ (__kindof Model *)modelWithDict:(NSDictionary *)dict;
#

# .m 文件中
+ (__kindof Model *)modelWithDict:(NSDictionary *)dict{
    Model *model = [[Model alloc] init];
    // 对的,你没有看错,一个KVC方法就OK了,前提是,你的模型属性必须与字典一一对应。
    [model setValueForKeysWithDictionary:dict];

return model;
}
#viewController中
NSMutableArray *models = [NSMutableArray array];
for (NSDictionary *dict in dictArr){
      // 字典转模型(别忘记导入model类)
    Model *modle = [Model modelWithDict:dict];
    
   [models addOBject:model];
}
NSLog(@"%@",models);

途中会报的错误

//1.也许你的某个dict里面有一些其他dict没有的字段,没有在6/10的方法中读取出来
//因为昨天的方法是只会去读你传进去的那一个dict,这时你只需要找到那个特有的字段,加载model属性中就可以了。


//2.当你在6/10的方法中读取出来的属性中存在系统的关键字时候,或者后台返回给你的字段不是你想要的。那么你需要知道下面的这个方法。

#在model.m文件中重写系统的报错方法
// 解决KVC报错
- (void)setValue:(id)value forUNdefinedKey:(NSString *)key{
    // key :代表没有找到的key(也就是关键字/不是你想要的字段名)
    // value:key对应的值

    // 用自己想要的属性名代替不想要的key
    //下面那张图片是报关键字id错误,在model类中用_ID代替
    if([key isEqualToString:@"id"]){
          _ID = [value integerValue];
      }
    NSLog(@"%@ --- %@",key ,value);
}

第二个的报错图片

这里就结束了,明天再跟进用runtime实现。晚安,好梦。

相关文章

  • KVC字典转模型以及常见错误解决(接上昨晚的自动生成属性)

    接上昨晚的数据源继续用,然后将自动生成的属性贴在模型中 途中会报的错误 这里就结束了,明天再跟进用runtime实...

  • 自动生成属性的模型

    利用 KVC 实现的自动生成属性的模型 调用下面的方法 在输出控制台输出属性模型, 利用kvc 属性名字与字典的 ...

  • KVC的简单使用

    KVC字典转模型 KVC 中经常使用的就是字典转模型 KVC的大招 KVC设置对象属性及取值 KVC间接设置对象属...

  • runtime字典转模型

    KVC实现字典转模型 模型类Status 其中,模型中的属性都是我通过上篇介绍的自动获取模型属性的方式来获得的外部...

  • 14-Swift中字典转模型

    字典转模型(初始化时传入字典) 字典转模型(利用KVC转化) 一、 普通的字典转模型: 二、利用KVC字典转模型:

  • iOS 字典转模型KVC实现

    字典转模型 KVC 实现 KVC 字典转模型弊端:必须保证,模型中的属性和字典中的key一一对应。 如果不一致,就...

  • KVC、KVO

    KVC最常见的两种应用 1.字典转模型2.对私有属性赋值 accessInstanceVariablesDirec...

  • 使用runtime和KVC字典转模型

    使用KVC字典转模型的时候,KVC是通过遍历字典中的所有的key去模型中查找有没有对应的属性名,而runtime则...

  • runtime -- 实现字典转模型

    runtime与KVC字典转模型的区别:1.KVC:遍历字典中所有的key,去模型中查找有没有对应的属性名。2.r...

  • iOS KVC运用

    主要应用场景 KVC 属性赋值 添加和访问私有成员变量(ivar) 字典转模型 取值 模型转字典 集合操作符 自定...

网友评论

    本文标题:KVC字典转模型以及常见错误解决(接上昨晚的自动生成属性)

    本文链接:https://www.haomeiwen.com/subject/oeredttx.html