低调看直播体育app软件下载
本篇文章主要介绍了" Swift 掌控Moya的网络请求、数据解析与缓存",主要涉及到方面的内容,对于IOS开发感兴趣的同学可以参考一下:
Moya 在Swift开发中起着重要的网络交互作用,但是还有不如之处,比如网络不可用时,返回的 Response 为 nil,这时还得去解析相应的 ErrorC...
解决的方案有很多,不过我比较习惯使用 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 协议