首页 > 代码库 > NSURLSession实现下载(不能看到下载进度)

NSURLSession实现下载(不能看到下载进度)

NSURLSession实现下载(不能看到下载进度)

/**

 * 下载任务:不能看到下载进度
 */

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

NSURLSession实现下载(不能看到下载进度)