我想下载一个具有暂停/恢复功能的文件。我读了苹果文档,我得到了NSUrldownload
支持相同,但它不适用于iOS。我正在尝试NSUrlconnection
,但没有工作。 我不想使用任何第三方库,我想自己实现它,下面是我尝试的代码片段。
NSString *fileName = [NSString stringWithFormat:@"~%@",[[url componentsSeparatedByString:@"/"] lastObject]];
int dataLength = [[self checkDocDirectoryforFileName:fileName] length];
//dataLength = 0;
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setValue:@"audio/mpeg" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"bytes" forHTTPHeaderField:@"Accept-Ranges"];
[request setValue:@"Keep-Alive" forHTTPHeaderField:@"Connection"];
[request setValue:[NSString stringWithFormat:@"%d",dataLength] forHTTPHeaderField:@"Content-Length"];
NSLog(@"Request header %@", [request allHTTPHeaderFields]);
NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];
答案 0 :(得分:1)
NSURLSession ,尤其是 NSURLSessionDownloadTask 提供此功能。
NSURLSession API提供状态和进度属性 除了向代表提供此信息之外。它支持 取消,重新启动或恢复,以及暂停任务,以及它 提供恢复暂停,取消或失败的能力 下载他们离开的地方。
我会使用AFDownloadRequestOperation。 Take a look at this thread
AFDownloadRequestOperation有 额外支持恢复部分下载,使用临时 目录并有一个特殊的块,有助于计算 正确的下载进度。
答案 1 :(得分:1)