前言
因为公司需要开发一个内部使用的字典转模型的项目,所以最近也是在看关于字典转模型的内容。有Mantle,jsonModel,MJExtension等众多框架,最后还是选择了先从YYModel源码读起,发现一边读着读着我的膝盖就掉下去了,于是想总结一下自己在阅读源码的过程中收获的知识点
目录结构
工程目录.png
打开项目工程一开始以为只有2个类应该不会太难读懂,结果仔细点开一看,我膝盖骨也掉了,YY对NSObject中的一些内容进行了又一次的封装,增加了许多描述的内容,经过一番梳理,我整理出了一张结构图
代码结构.png
理解
-
YYClassInfo 是对于Class进行了封装,进行封装增加描述
YYClassIvarInfo 对 Class的Ivar进行了进行封装增加描述
YYClassMethodInfo 对 Class 的 Method进行封装增加描述
YYClassPropertyInfo 对 Class 的 Property进行了封装描述
-
YYModel :
YYModelMeta 对YYClassInfo进行封装描述
YYModelPropertyMeta对YYClassProperty进行封装描述
主要类别
NSObject(YYModel) : 提供一些字典模型互转的方法,将对key/value进行匹配,赋值给Model对应的property
NSArray(YYModel): 为NSArray提供字典转模型的方法
NSDictionary(YYModel):为NSDictionary提供字典转模型方法