跳转至

Plugin

MoyaMapperPlugin 的初始化方法

public init<T: ModelableParameterType>(
    _ type: T,
    transformError: Bool = true
)

type : ModelableParameterType 用于定义字段路径,做为全局解析数据的依据

transformError : Bool 是否当网络请求失败时,自动转换请求结果,默认为 true

  • 当请求失败的时候,此时的 result.responsenil,根据transformError是否true 判断是否创建一个自定义的 response 并返回出去。

➡ 本来可以请求到的数据内容

success-obj

➡ 现在关闭网络,再请求数据

  • 正常情况下,即不做任何不处理的时候, Responsenil

  • 经过 MoyaMapperPlugin 处理的后可得到转换后的 Response ,如图

success-obj

  • 这里将请求失败进行了统一处理,无论是服务器还是自身网络的问题,retStatus 都为 MMStatusCode.loadFail,但是 errorDescription 会保持原来的样子并赋值给 retMsg
  • retStatus 值会从枚举 MMStatusCode 中取 loadFail.rawValue ,即 700
  • 取 类型为 ModelableParameterTypetypestatusCodeKey 所指定的值 为键名

ps:

  1. 可以通过判断 retStatus 是否与 MMStatusCode.loadFail.rawValue 相同来判断是否显示加载失败的空白页占位图
  2. retStatus 的值只有在请求失败的请求下,MoyaMapperPlugin 才会去修改。如从缓存中取出的数据,其 retStatus 还是 000