Moya 书写简化思路 2 : enum 的 task
使用 Moya 做 iOS 的网络请求,
项目中有一百多个网络请求方法,就建立对应的 enum 条目
【Moya 书写简化思路 2 : enum 的 task】其中 task 的填写,一般 case 下,再这样
enum NetHud{
case modify_content(R_create_content)// ...
}extension NetHud{
public var task: Task {
case .modify_content(dat):
return .requestJSONEncodable(dat)// ...
// 反复抄写}}
使用 Mirror, 改造
enum NetHud{
case modify_content(R_create_content)// ...
}extension NetHud{
var obj: Encodable?{
let mirror = Mirror(reflecting: self)
if let val = mirror.children.first?.value as? Encodable{
return val
}
else{
return nil
}
}public var task: Task {
default:
if let dat = obj{
return .requestJSONEncodable(dat)
}
else{
// 不会走,
// 省略书写
return .requestPlain
}
}}}
推荐阅读
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- 产品设计的简化
- 60天书写营Day63心魔及影響
- 分享自由书写法宝
- 富书写作情报2018-01-18
- 每一个值得纪念的日子,都有一个值得去书写的故事
- 使用 Simple Replay 实用程序简化 Amazon Redshift RA3 迁移评估
- 关于书写
- 原生js事件简化
- 自由书写一首诗