Como adicionar descrição localizada para erros em Swift (protocolo Error)
Olá a todos! Estou escrevendo meu aplicativo em Swift 3 e enfrentei um problema com a localização de mensagens de erro. Tenho meu próprio tipo de erro que implementa o protocolo Error:
enum MyError: Error {
case networkError
case invalidInput(String)
case unknown
}
Quero que, quando ocorrer um erro, o usuário veja uma mensagem compreensível no seu idioma. Conheço NSLocalizedString, mas não entendo como integrá-la corretamente com Error. Tentei fazer assim:
extension MyError: LocalizedError {
var errorDescription: String? {
switch self {
case .networkError:
return NSLocalizedString("Erro de rede", comment: "Network error")
case .invalidInput(let field):
return NSLocalizedString("Entrada inválida no campo \(field)", comment: "Invalid input")
case .unknown:
return NSLocalizedString("Erro desconhecido", comment: "Unknown error")
}
}
}
Mas quando