提取Error枚举案例的原始值

时间:2017-06-18 15:15:16

标签: swift error-handling enums

我创建了一个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)
}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您尝试做的是在同一行上有两个案例,您可以这样做:

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