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文件夹。