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

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

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

推荐阅读更多精彩内容