Код 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"