小编and*_*dre的帖子

NSURLConnectionDownloadDelegate destinationURL

我目前正在开发使用异步下载的iPad iOS 6应用程序.为了接收进度信息,我使用了代表NSURLConnectionDownloadDelegate.下载和收到的进度

– connection:didWriteData:totalBytesWritten:expectedTotalBytes:
Run Code Online (Sandbox Code Playgroud)

工作得很好.

但是一旦下载完成,我不知道如何NSURL destinationURL从delegate方法提供的数据中提取数据

– connectionDidFinishDownloading:destinationURL:
Run Code Online (Sandbox Code Playgroud)

在String中收到的destinationURL看起来像" /private/var/mobile/Applications/7CB3B194-9E79-4F0B-ACFD-7B87AA8C7BAF/tmp/filename.mp4"

然后我尝试从给定的NSURL中提取数据:

NSData *data = [[NSData alloc] initWithContentsOfURL:destinationURL];
Run Code Online (Sandbox Code Playgroud)

但数据是空的......

NSLog(@"data Size: %@", data.length);     //prints out 0
Run Code Online (Sandbox Code Playgroud)

有人使用相同的问题NSURLConnectionDownloadDelegate吗?任何想法如何解决?


编辑:我尝试先复制文件,然后[NSData initWithContentsOFFile]按照建议使用,但数据大小仍为0.

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

[[NSFileManager defaultManager] copyItemAtPath:destinationURL.path toPath:DEST_PATH error:nil];

NSData *data = [[NSData alloc] initWithContentsOfFile:DEST_PATH];

NSLog(@"data Size: %i", data.length); //still returns 0..
}
Run Code Online (Sandbox Code Playgroud)

Edit2:我可以提取使用NSData时的sendAsynchronousRequest方法NSURLConnection.但是像这样,我无法确定下载的进度......

[NSURLConnection sendAsynchronousRequest:theRequest queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData …
Run Code Online (Sandbox Code Playgroud)

nsurlconnection nsdata ios nsurlconnectiondelegate ios6

6
推荐指数
1
解决办法
1994
查看次数