美文网首页
Model 数据解析

Model 数据解析

作者: helinyu | 来源:发表于2021-12-08 18:41 被阅读0次

YYModel

YYModel 几个方法结构

YYModel 里面使用的技术
1、runtime 获取model的属性、变量、方法 ,
2、同事对metaClass进行了缓存, metaCache 和classCache ,缓存提高了效率
3、实现来了model - json - model archive
4、使用了CoreFoundation里面的方法, 算是提高了效率
5、KVC设置有关的值

YYModel 解析参考


JsonModel

JsonModel 通过runtime获取属性以及数目
1、初始化的时候获取有关的属性, 获取的内容缓存到class里面,runtime进行绑定model的值,相当于缓存,这个是没有问题的。 不过这个过程使用了scanner来处理属性。
2、-(BOOL)__doesDictionary:(NSDictionary*)dict matchModelWithKeyMapper:(JSONKeyMapper*)keyMapper error:(NSError**)err 这个方法检测是否符合, 即为哪些属性的值必须要有的,这个感觉没有必要 , 这里也使用了for来进行了校验
3、 if (![self __importDictionary:dict withKeyMapper:self.__keyMapper validation:YES error:err])主要的处理数据的方法;
《1》 这里处理keyPath,使用了try...cache(慢) , for循环是否是校验的类型(慢)、
4、 通过protocol来进行处理这个接口的内容


MJExtension

获取有关的信息,然后进行遍历这个内容, 完成的遍历过程。


PS:
1: 所以JSONModel相比YYModel, 浪费太多时间带for以及try...catch 里面了。
2: JsonModel 获取属性进行了检查(耗时),并且有一个optional这个属性检查。
3:处理子的类型,都是使用了递归,这个没啥好说的。

YYModel和jsonModel的对比,其实就死kvc和scanner的计算差别, 也是常规遍历算法和hash遍历设置算法的优劣问题了。

YYModel 为什么比其他的模型块?
1> runtime 解析信息,开始解析足够的信息 ,
2> 缓存, metaCache 、classCache
3> coreFoundation 库,提高了性能
4>一个判断,属性和数据的数目,然后进行判断,就少了全部的遍历
5> switch 替换if...else 库 ,稍微高一丢丢。

PS: 考虑一个问题, 属性的一些控制变量怎么处理? eg: readonly 。。。

YYModel又是参考

相关文章

  • JSONModel使用「数据转模型」

    准备: JSONModel_下载 快速的解析数据为Model模型,支持层级嵌套Model模型解析,指定类型自动转化...

  • JSONModel使用

    准备: JSONModel_下载 快速的解析数据为Model模型,支持层级嵌套Model模型解析,指定类型自动转化...

  • MVC模式 笔记

    MVC模型分析: Model 及 FrameModel 1.创建数据model: 解析plist文件数据 1).h...

  • Model 数据解析

    YYModel YYModel 里面使用的技术1、runtime 获取model的属性、变量、方法 ,2、同事对m...

  • 我眼中的开源库源码之JSONModel(一)

    JSONModel 一个解析 JSON 数据的开源库,可以将 JSON 数据直接解析成自定义的 model ,其中...

  • Codable使用

    准备JSON数据 1、基本模型解析 Sample.swift json转model,一行代码搞定 解析之后的结果如...

  • JSONModel解析数据成Model

    http://blog.csdn.net/smking/article/details/40432287 来自c...

  • JSONModel解析数据成Model

    看到的一篇挺好的文章,项目也用到的. http://blog.csdn.net/smking/article/de...

  • android MVP使用与简单封装

    MVP 简单介绍 M(model)负责数据的请求,解析,过滤等数据操作 V(View)负责图示部分展示,图示事件处...

  • 简述网页的渲染机制

    DOM:Document Object Model,浏览器将HTML解析成树形的数据结构,简称DOM。CSSOM:...

网友评论

      本文标题:Model 数据解析

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