共计 544 个字符,预计需要花费 2 分钟才能阅读完成。
应用 Moya 做 iOS 的网络申请,
我的项目中有一百多个网络申请办法,就建设对应的 enum 条目
其中 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
}
}
}
}
正文完