【发布时间】:2019-10-05 19:07:03
【问题描述】:
我正在尝试使用以下代码将下载的 JSON 解码为结构。
static func request(url: URL) -> AnyPublisher<SomeDecodableStruct, Error> {
return URLSession.shared.dataTaskPublisher(for: url)
.map { $0.data }
.decode(type: SomeDecodableStruct.self, decoder: JSONDecoder())
.eraseToAnyPublisher()
}
但是,如果处理失败,我希望您返回有关请求处理失败或解码处理失败的信息。
因此,我定义了符合Error协议的FailureReason枚举如下。
enum FailureReason : Error {
case sessionFailed(error: URLError)
case decodingFailed
}
static func request(url: URL) -> AnyPublisher<SomeDecodableStruct, FailureReason> {
// ???
}
如何定义满足FailureReason 的request(url:)?
【问题讨论】: