无法在ios5的connectionDidFinishDownloading中获取destinationURL数据

时间:2011-07-18 15:12:57

标签: xcode4 nsurlconnection ios5

我正在尝试获取要下载的网址列表。我正在使用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];

数据总是给我一个零值也有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 个答案:

答案 0 :(得分:10)

到目前为止,

NSURLConnectionDownloadDelegate仅适用于Newstand应用。请提交错误。

答案 1 :(得分:3)

您可以尝试使用NSURLConnectionDataDelegate代替。它不会显示在文档中,但它实际上存在(使用快速打开找到它 Cmd + Shift + O )。

你可以使用以下方法

  1. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  2. - (void)connectionDidFinishLoading:(NSURLConnection *)connection

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

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

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

– (void)connectionDidFinishLoading:(NSURLConnection *)connection

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