swift - 提取错误枚举案例的原始值

标签 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)
}

我怎样才能做到这一点?

最佳答案

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

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

关于swift - 提取错误枚举案例的原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616453/

相关文章:

swift - 参数类型 'Int' 不符合预期类型 'NSCoding & NSCopying & NSObjectProtocol'

ios - 添加到 ScrollView 的 UIView 不适合全屏,导航栏位于顶部

iOS Swift UIImagePickerController 仅显示持续时间低于特定长度的视频

ruby-on-rails - 如何处理ActiveRecord::RecordNotUnique error

java - 使用 Hibernate 在 Postgresql 中保留 EnumSet

java - 创建映射函数表以应用于 Java 中的每个查询参数的好方法是什么

Swift/IOS8 错误 : "fatal error: Can' t unwrap Optional. 无”

php - 在上传文件时显示 undefined index

android - 如何在手机上的Android中使用错误记录

枚举中的 Javascript 枚举