Como fornecer uma descrição localizada com um tipo de erro no Swift?
Estou definindo um tipo de erro personalizado com a sintaxe do Swift 3 e desejo fornecer uma descrição amigável do erro retornada pelolocalizedDescription
propriedade doError
objeto. Como eu posso fazer isso?
public enum MyError: Error {
case customError
var localizedDescription: String {
switch self {
case .customError:
return NSLocalizedString("A user-friendly description of the error.", comment: "My error")
}
}
}
let error: Error = MyError.customError
error.localizedDescription
// "The operation couldn’t be completed. (MyError error 0.)"
Existe um caminho para olocalizedDescription
retornar minha descrição personalizada do erro ("Uma descrição amigável do erro.")? Observe que o objeto de erro aqui é do tipoError
e nãoMyError
. É claro que posso converter o objeto para MyError
(error as? MyError)?.localizedDescription
mas existe uma maneira de fazê-lo funcionar sem transmitir para o meu tipo de erro?