ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> IOS开发 >> Swift 掌控Moya的网络请求、数据解析与缓存

Swift 掌控Moya的网络请求、数据解析与缓存(1/7)

来源:网络整理     时间:2018-10-31     关键词:

本篇文章主要介绍了" Swift 掌控Moya的网络请求、数据解析与缓存",主要涉及到方面的内容,对于IOS开发感兴趣的同学可以参考一下: Moya 在Swift开发中起着重要的网络交互作用,但是还有不如之处,比如网络不可用时,返回的 Response 为 nil,这时还得去解析相应的 ErrorC...

  • Moya 在Swift开发中起着重要的网络交互作用,但是还有不如之处,比如网络不可用时,返回的 Response 为 nil,这时还得去解析相应的 Error

  • Codable 可以帮助我们快速的解析数据,但是一旦声明的属性类型与json中的不一致,将无法正常解析; 而且对于模型中自定义属性名的处理也十分繁琐

解决的方案有很多,不过我比较习惯使用 MoyaMapper ,不仅可以解决上述问题,还提供了多种模型转换、数据互转、多种数据类型任意存储的便捷方法。掌控Moya的网络请求、数据解析与缓存简直易如反掌。

MoyaMapper是基于Moya和SwiftyJSON封装的工具,以Moya的plugin的方式来实现间接解析,支持RxSwift

GitHub: MoyaMapper

详细的使用请查看手册 https://MoyaMapper.github.io

特点

  • 支持json 转 Model 自动映射 与 自定义映射

  • 无视 json 中值的类型,Model 中属性声明的是什么类型,它就是什么类型

  • 支持 Data 字典 JSON json字符串 Model 互转

  • 插件方式,全方位保障Moya.Response,拒绝各种网络问题导致 Response 为 nil,将各式各样的原因导致的数据加载失败进行统一处理,开发者只需要关注 Response

  • 可选 - 支持数据随意缓存( JSON 、 Number 、String、 Bool、 Moya.Response )

  • 可选 - 支持网络请求缓存

数据解析

一、插件注入

附:插件 MoyaMapperPlugin 的详细使用

1、定义适用于项目接口的 ModelableParameterType

// statusCodeKey、tipStrKey、 modelKey 可以任意指定级别的路径,如: "error>used"
struct NetParameter : ModelableParameterType {
    var successValue = "000"
    var statusCodeKey = "retStatus"
    var tipStrKey = "retMsg"
    var modelKey = "retBody"
}

2、在 MoyaProvider 中使用 MoyaMapperPlugin 插件,并指定 ModelableParameterType

let lxfNetTool = MoyaProvider(plugins: [MoyaMapperPlugin(NetParameter())])

使用 MoyaMapperPlugin 插件是整个 MoyaMapper 的核心所在!

二、Model声明

Model 需遵守 Modelable 协议

  • MoyaMapper 支持模型自动映射 和 自定义映射

相关图片

相关文章