Swift-检查枚举类型/值
我有一个用于传回数据值或错误的枚举结构:Swift-检查枚举类型/值,swift,enums,Swift,Enums,我有一个用于传回数据值或错误的枚举结构: public enum Result<Value> { case success(Value) case failure(Error) } 结果类型是通过闭包传递回来的类型,类似于以下内容: completion(.failure(NetworkServiceError.invalidUrlRequest)) 我正在编写一个测试用例,我需要能够检查该错误是否是上述枚举中的特定类型。要让您了解我正在做什么以及我要检查它的位置
public enum Result<Value> {
case success(Value)
case failure(Error)
}
结果类型是通过闭包传递回来的类型,类似于以下内容:
completion(.failure(NetworkServiceError.invalidUrlRequest))
我正在编写一个测试用例,我需要能够检查该错误是否是上述枚举中的特定类型。要让您了解我正在做什么以及我要检查它的位置,请参阅以下示例代码:
networkClient.callAPI() { (result) in
switch result {
case .success( _):
// do something
case .failure(let error):
if error == NetworkServiceError.invalidUrlRequest { // THIS IS WHERE IT FAILS
// do something
} else {
// do something
}
}
}
对于我的情况,我有点困惑,不知道该怎么办;我可能忽略了一些非常简单的事情。提前感谢。如果您从中查看实现,您会发现它们使
值
和错误
类型都是通用的。这将允许完成闭包知道它得到的错误类型。然后开关可以与特定情况匹配
因此,如果闭合得到一个结果
,那么开关箱可能会变为
case .failure(.jsonParsing):
如果您不想更改
结果
,可以使用这样的案例来匹配特定类型的错误
case .failure(let error as NetworkServiceError):
您还可以将
case.failure(networkservicererror.jsonParsing)
与非类型错误结果一起使用。
case .failure(let error as NetworkServiceError):