iOS 怎么用NSURLSession文件下载(1)

//获得NSURLSession对象
NSURLSession * session = [NSURLSession sharedSession];

//创建任务
NSURLSessionDownloadTask * tast = [session downloadTaskWithURL:[NSURL URLWithString:@"http://xxx"] completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    
    NSLog(@"文件下载完毕");
    NSLog(@"文件下载到了这里%@",location);
    
    //有人会有疑问 我没有指定下载路径 它把文件下载哪里了
    //其实这个方法把文件下载到沙盒里面的tmp文件中了,不论多大的文件,都可以。
    //它默认的下载方式是下载一点存一点方法tmp文件中
    
    //注意:但是tmp是个临时文件夹,也就是说下载完成的某个时刻这个文件会随时消失的
    
    //要想把下载的文件存到手机中不被删除怎么做呢?
    //可以把下载好的文件剪切到沙盒中的caches当中
    
    //文件要存放的真实路径  response.suggestedFilename:用服务器给的那个文件名命名
    NSString * file = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:response.suggestedFilename];
    //剪切方法
    NSFileManager * mgr = [NSFileManager defaultManager];
    
    //从下载路径 剪切到要保存的路径当中
    //[mgr moveItemAtURL:@"下载路径" toURL:@"保存路径" error:nil];
    [mgr moveItemAtURL:location toURL:[NSURL fileURLWithPath:file] error:nil];
    
}];
//启动任务 就立即会去下载文件
[tast resume];

以上代码就是简单的大文件下载,没有列表格说明,直接在代码中给以解释说明希望对一些有需要的朋友有帮助。

  • 但是这个下载方式会有很多问题,比如说看不到下载进度,不能暂停和继续下载
  • 后期我会持续更新大文件下载的博客,如果你喜欢点颗爱心持续关注我
  • 最后如果我写哪里有什么不对的情况下,还请大神指正。

你可能感兴趣的:(iOS 怎么用NSURLSession文件下载(1))