У меня есть структура enum для передачи либо значения данных, либо ошибки:
public enum Result<Value> {
case success(Value)
case failure(Error)
}
У меня также есть структура enum, которая выглядит следующим образом для отправки ошибок с нашего сетевого уровня:
public enum NetworkServiceError: String, Error {
case jsonParsing = "Error parsing the json response from the server"
case invalidUrlRequest = "Error forming the url request"
case dataEncoding = "Error encoding the data"
}
Тип Result - это то, что передается через замыкание, что-то вроде следующего:
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
}
}
}
Я немного смущен тем, как поступить в моем случае;Я, наверное, упускаю из виду кое-что очень простое здесь.Заранее спасибо.