【问题标题】:Extracting raw value of a Error enum case提取错误枚举案例的原始值
【发布时间】:2017-11-20 20:05:18
【问题描述】:

我创建了一个Result 枚举来传播REST API 调用的结果。

enum Result {
    case success([AnyObject])
    case failure(APIError)
}

我还有一个 Error 枚举来处理错误

enum APIError: Error {
    case requestFailed(String)
    case invalidData(String)
    case invalidQuery(String)
    case invalidURL(String)
}

我在完成闭包中发送错误,例如

completion(.failure(.invalidURL("Invalid URL")))

如何在if case 场景中访问此字符串?

我正在尝试做类似的事情

if case .failure(let res) = result /*, case res.invalidQuery(let invalid) */ {
    print(res)
}

我怎样才能做到这一点?

【问题讨论】:

    标签: swift error-handling enums


    【解决方案1】:

    如果你想要在同一行有两个案例,你可以这样做:

    if case .failure(let error) = result, case .invalidQuery(let message) = error {
        print(message)
    }
    

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多