NSURLSession实现下载(不能看到下载进度)
/**
*
下载任务:不能看到下载进度
*/
- (void)downloadTask
{
// 1.得到session对象
NSURLSession *session = [NSURLSession
sharedSession];
// 2.创建一个下载task
NSURL *url = [NSURL
URLWithString:@"http://localhost:8080/MJServer/resources/test.mp4"];
NSURLSessionDownloadTask
*task = [session
downloadTaskWithURL:url
completionHandler:^(NSURL
*location,
NSURLResponse *response,
NSError *error) {
// location :
临时文件的路径(下载好的文件)
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask,
YES)
lastObject];
// response.suggestedFilename
:
建议使用的文件名,一般跟服务器端的文件名一致
NSString *file = [caches
stringByAppendingPathComponent:response.suggestedFilename];
//
将临时文件剪切或者复制Caches文件夹
NSFileManager *mgr = [NSFileManager
defaultManager];
// AtPath :
剪切前的文件路径
// ToPath :
剪切后的文件路径
[mgr
moveItemAtPath:location.path
toPath:file
error:nil];
}];
// 3.开始任务
[task
resume];
}
注意:
NSURLSessionDownloadTask下载完成之后,将数据保存在沙盒里面的tmp临时文件中,需要将临时文件将临时文件剪切或者复制Caches文件夹。