NSError: получить локализованное описание из кода

Можно ли получить локализованные описания из кодов ошибок?

Пример: когда приложение пытается подключиться в автономном режиме, NSURLSession возвращает ошибку:

Домен ошибки = код NSURLErrorDomain = -1009 «Подключение к Интернету отключено».

Возможно ли получить "Подключение к Интернету отключено". описание с использованием домена и кода? Что-то вроде следующего (на самом деле это не работает):

let error = NSError(domain: "NSURLErrorDomain", code: -1009)
print(error.localizedDescription)

person Avt    schedule 11.10.2016    source источник


Ответы (1)


Это работает, только если NSLocalizedDescriptionKey установлен в словаре информации о пользователе. По-видимому, это не объект NSError, который вы из NSURLSession и, таким образом, строка по умолчанию создается из домена и кода. Дополнительные сведения см. в документации по NSError.

Если вы хотите локализовать сообщения об ошибках, которые вы показываете своим пользователям, вам нужно будет проверить код ошибки для типа ошибки и показать соответствующую локализованную строку. Дополнительные сведения см. в разделе Локализация приложения. подробности использования локализации.


Изменить:

Читая ваш вопрос еще раз, я думаю, что неправильно понял ваш вопрос.

Если вы хотите инициализировать объект NSError с доменом и кодом ошибки и содержать определенное сообщение об ошибке, соответствующее коду ошибки, используемому NSURLSession, ответ будет НЕТ.

Конкретные коды ошибок не являются общепризнанным стандартом, и ничто не мешает другим приложениям использовать те же коды.

При этом NSError автоматически не заполняет поля message в соответствии с конкретными кодами ошибок. Клиенты, использующие объект NSError, должны делать это вручную.

person Thomm    schedule 11.10.2016