Не удалось получить данные destinationURL в connectionDidFinishDownloading для ios5

Я пытаюсь получить список URL-адресов для загрузки. Я использую NSURLConnection, чтобы получить JSON файл, имеющий этот список URL-адресов. в

- (void)connection:(NSURLConnection *)connection didWriteData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten 

Я получаю 122239 в качестве общего количества байтов. когда

- (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL

называется Я пытаюсь прочитать данные url, чтобы извлечь файл JSON:

NSData *data = [NSData dataWithContentsOfURL:destinationURL options:NSDataReadingUncached error:&error];

данные всегда дают мне значение nil, и в этом файле записано 122239 байт, а в описании ошибки отображается "Нет такого файла или каталога"

Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn\u2019t be completed. (Cocoa error 260.)" UserInfo=0x4a1b90 {NSFilePath=/private/var/mobile/Applications/CD8E4838-D78D-41DE-8896-360B7FC02A1D/tmp/c1749157e1d4317f6158a8490e138e7e, NSUnderlyingError=0x4c5ae0 "The operation couldn\u2019t be completed. No such file or directory"}

Любые предложения?

Ответ 1

NSURLConnectionDownloadDelegate работает только для приложений Newstand. Пожалуйста, укажите ошибку.

Ответ 2

Вместо этого вы можете использовать NSURLConnectionDataDelegate. Он не будет отображаться в документах, но на самом деле там (используйте Open Quickly, чтобы найти его Cmd + Shift + O).

Здесь вы можете использовать следующие методы

  • - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  • - (void)connectionDidFinishLoading:(NSURLConnection *)connection

Ответ 3

iЕсли NSURLConnectionDownloadDelegate методы присутствуют в вашем классе, NSURLConnectionDataDelegate не будет вызываться. Осторожно! - jAckOdE Спасибо за комментарий в Erik Aigner ниже.

В основном... NSURLConnectionDownloadDelegate переопределяет NSURLConnectionDataDelegate. Осторожно!!!:)

Ответ 4

– (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data

Вышеуказанный метод используется для получения данных, которые мы получаем с использованием метода post.

– (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

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

– (void)connectionDidFinishLoading:(NSURLConnection *)connection

Вышеуказанный метод используется для обработки данных после успешного соединения.