Код NSCocoaErrorDomain = 256
Я застрял с этим некоторое время и, похоже, не обошел это.
Я пытаюсь прочитать содержимое URL-адреса в виде строки из URL-адреса, но я получаю странный
Ошибка → Ошибка домена = NSCocoaErrorDomain Code = 256 "Операция не может быть выполнена. (Cocoa ошибка 256.)"
Мой код:
fetchedString = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"www.example.com/iphone"] encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",fetchedString);
// if there is something wrong with the URL
if (error) {
NSLog(@"Error -> %@", error);
return ;
}
Что я делаю неправильно? Я также пытался использовать NSData, но я возвращаюсь обратно.
Ответы
Ответ 1
Да, в URL отсутствует схема: "http://".
"Ошибка → Ошибка домена = NSCocoaErrorDomain Code = 256"
Для кода ошибки проверьте документацию Apple:
Коды NSError в домене ошибок Cocoa.
NSFileReadUnknownError = 256,
NSFileReadUnknownError
"Ошибка чтения, неизвестная причина"
Не то, чтобы определение ошибки очень полезно.: -)
Также не проверяйте, есть ли error
nil
, чтобы определить, есть ли ошибка, проверьте возвращаемое значение для nil
. error
не гарантируется nil
при успешном выполнении.
Ответ 2
У меня была аналогичная проблема с доступом к файлам, расположенным на моем устройстве. Я следил за NSURL isFileURL всегда возвращает NO
и использовал [NSURL fileURLWithPath] вместо [NSURL URLWithString] - это сработало!
Ответ 3
Песочница
Если вы используете песочницу в своем приложении, вы можете проверить, что для параметра com.apple.security.network.client
установлено значение YES
. Он находится на вкладке Общие вашей цели в Xcode 5 под
Сеть: исходящие соединения (клиент)
Также имейте в виду, что если вы видите код 257
при попытке достичь URL-адреса file:///
, что также возможно из-за песочницы, но на этот раз скорее часть доступа к файлу. Поскольку я не хотел открывать его никому другому, кроме `com.apple.security.files.user-selected.read-write '
Пользовательские файлы
Я предпочел использовать A Dead Simple Fileserver и использовать http://localhost:3000
в режиме отладки.
Ответ 4
Я получил эту ошибку (Error Domain = NSCocoaErrorDomain Code = 256), как только наш ssl-сертификат истек. это может не помочь вам, но может помочь кому-то другому.
Ответ 5
Дополнительные причины, которые могут вызвать эту конкретную ошибку:
- SSL неверно сконфигурирован на сервере
- Сервер перенаправляет (301) URL-адрес http на https (см. # 1)
- Безопасность транспорта приложений также использует этот код для заблокированных запросов.
Ответ 6
Я получил ту же ошибку. Вышеупомянутый отмеченный ответ идеален. Но в моем случае у меня был "http://" в URL-адресе, но он должен был добавить номер порта в запросе url, так как есть служба, работающая на определенном порту, который фактически отвечает на ваш запрос. @"http://example.com:8084/yyy.zzz"