12

我正在尝试获取要下载的资产 url 列表。我正在使用 NSURLConnection 来获取具有此 url 列表的 JSON 文件。在

- (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];

data 总是给我一个 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"}

有什么建议么?

4

4 回答 4

10

NSURLConnectionDownloadDelegate目前仅适用于 Newstand 应用程序。请提交一个错误。

于 2012-01-18T00:43:32.457 回答
3

你可以尝试NSURLConnectionDataDelegate改用。它不会出现在文档中,但它确实存在(使用Open Quickly找到它Cmd+Shift+O)。

在那里你可以使用以下方法

  1. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  2. - (void)connectionDidFinishLoading:(NSURLConnection *)connection
于 2012-03-20T19:07:27.673 回答
0
– (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data

上述方法用于接收我们使用 post 方法获取的数据。

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

此方法,您可以在未与服务器建立连接的情况下接收错误报告。

– (void)connectionDidFinishLoading:(NSURLConnection *)connection

上述方法用于连接成功后的数据处理。

于 2014-10-07T04:42:45.980 回答
0

如果你的类中存在 NSURLConnectionDownloadDelegate 方法,则不会调用 NSURLConnectionDataDelegate。小心!– jAckOdE 感谢以下 Erik Aigner 回答中的评论。

基本上...... NSURLConnectionDownloadDelegate 覆盖 NSURLConnectionDataDelegate。谨防!!!:)

于 2013-04-05T21:53:07.180 回答