Avatar ·

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