iOS开发中kvc实现字典到模型的转换方法小结

闲话不表直接上代码,具体原理会在接下的篇幅中补上

object-c

方法-,声明一个Book类和一个Author类,在Book类中有一个author属性。

分别声明-(id)initWithDict:(NSDictionary*)dict;和+(id)authWithDict:(NSDictionary*)dict;方法。


在Book类中和Author类的.m文件中实现-(id)initWithDict:(NSDictionary*)dict;和+(id)authWithDict:(NSDictionary*)dict;方法


测试结果


方法二、使用- (void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues;批量赋值,在Book .h的头文件中可以这样声明-(void)setValue:(id)value forUndefinedKey:(NSString *)key;方法,并在.m文件里实现。

为了实现对嵌套json的处理,我们需要重写-(void)setValue:(id)value forKey:(NSString *)key方法,并且实现-(void)setValue:(id)value forUndefinedKey:(NSString *)key方法,这样当json中键值对多余模型类中的属性时不至于直接crash

测试

swift实现

定义一个Student和Book类,Student类中有一个book属性,在book类中实现了override func setValue(value: AnyObject?, forUndefinedKey key: String)方法,由于demo比较简单直接上代码

测试


demo下载地址:https://github.com/luguoliang/Model

总结:文笔枯涩,技术有限,如果错误,诚恳指出,共同学习进步。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • object-c 方法-,声明一个Book类和一个Author类,在Book类中有一个author属性。 分别声明...
    锦箫_1阅读 1,703评论 0 0
  • 需求一:将字典转换成自己需的对象,对象的属性是字典的key值,直接使用key值获取数据存在两个缺点,一是key值难...
    MonkeyDKing阅读 3,517评论 0 0
  • 一 快速生成@property 1 当我们需要用模型去实现一个比较小的功能的时候,由于我们需要对plist文件进行...
    莫许阅读 3,833评论 1 1
  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    朽木自雕也阅读 5,477评论 6 1
  • 一、 我在中山,一个人。 二、 当我收到阿姝在虹桥国际机场发来的短信时,我正在看《我们的十二年,一个轮回,这是传奇...
    文笔阅读 3,541评论 0 1