Avatar ·

Cómo agregar una descripción localizada para errores en Swift (protocolo Error)

¡Hola a todos! Estoy escribiendo mi aplicación en Swift 3 y me encontré con el problema de localizar los mensajes de error. Tengo mi propio tipo de error que implementa el protocolo Error:
enum MyError: Error {
    case networkError
    case invalidInput(String)
    case unknown
}
Quiero que cuando ocurra un error, el usuario vea un mensaje comprensible en su idioma. Conozco NSLocalizedString, pero no entiendo cómo integrarlo correctamente con Error. Intenté hacerlo así:
extension MyError: LocalizedError {
    var errorDescription: String? {
        switch self {
        case .networkError:
            return NSLocalizedString("Ошибка сети", comment: "Network error")
        case .invalidInput(let field):
            return NSLocalizedString("Неверный ввод в поле \(field)", comment: "Invalid input")
        case .unknown:
            return NSLocalizedString("Неизвестная ошибка", comment: "Unknown error")
        }
    }
}
Pero cuando