Невозможно получить данные destinationURL в connectionDidFinishDownloading для ios5 - PullRequest
12 голосов
/ 18 июля 2011

Я пытаюсь получить список 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];

данные всегда дают мне нулевое значение, также в этом файле записано 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"}

Есть предложения?

Ответы [ 4 ]

10 голосов
/ 18 января 2012

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

3 голосов
/ 20 марта 2012

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

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

  1. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  2. - (void)connectionDidFinishLoading:(NSURLConnection *)connection
0 голосов
/ 07 октября 2014
– (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data

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

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

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

– (void)connectionDidFinishLoading:(NSURLConnection *)connection

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

0 голосов
/ 06 апреля 2013

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

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

...