Apple не предоставила правильных описаний условий ошибки на iOS. Это не ошибка в вашем коде или их коде - строки просто отсутствуют на устройствах iOS.
Чтобы предоставить более интересную информацию об ошибках, вам нужно проверить домен и код объектов CFError
и NSError
и вернуть что-то. Список описаний ошибок от kCFErrorDomainCFNetwork
доступен здесь на сайте Apple. Код, подобный этому, поможет - вызовите его при создании пользовательского интерфейса представления ошибок:
NSString *GetUsefulErrorDescription(NSError *e) {
NSString *codeString = [NSString stringWithFormat: @"%li", (long)[e code]];
NSString *localized = NSLocalizedStringInTable(codeString, [e domain], nil);
if (!localized || [localized isEqual: codeString])
return [e localizedDescription];
else
return localized;
}
Это выглядит в файле в вашем комплекте приложений с именем "kCFErrorDomainCFNetwork.strings" для строки, такой как "100" (для kCFSOCKSErrorUnknownClientVersion, значение которой вы можете указать как "Сервер SOCKS отклонил доступ, поскольку он не поддерживает соединения с запрошенная версия SOCKS. ") Если такого описания ошибки нет, вместо этого используется строка, возвращаемая NSError
, что будет" Операция не может быть завершена. [...] "