通过NSURLSessionDownloadTask代理实现下载大文件
来源:互联网 发布:mac 加速器 编辑:程序博客网 时间:2024/05/01 11:41
//// ViewController.m// NSURLSessionDownloadTask//// Created by hq on 16/4/17.// Copyright © 2016年 hanqing. All rights reserved.//#import "ViewController.h"@interface ViewController () <NSURLSessionDownloadDelegate>@property (weak, nonatomic) IBOutlet UIButton *startBut;@property (weak, nonatomic) IBOutlet UIProgressView *pro;- (IBAction)startDownload:(UIButton *)sender;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];}- (IBAction)startDownload:(UIButton *)sender { NSURLSession *session=[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]]; NSString *urlString=@"http://120.25.226.186:32812/resources/videos/minion_01.mp4"; NSURLSessionDownloadTask *task=[session downloadTaskWithURL:[NSURL URLWithString:urlString]]; //恢复下载任务 [task resume]; self.startBut.enabled=NO; }-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{ NSLog(@"已下载%lld",totalBytesWritten); NSLog(@"文件总大小%lld",totalBytesExpectedToWrite); //self.pro.progress=(1.0*totalBytesWritten/totalBytesExpectedToWrite); [[NSOperationQueue mainQueue] addOperationWithBlock:^{ //必须放在主线程当中才回更新进度条----------------------------- self.pro.progress=(1.0*totalBytesWritten/totalBytesExpectedToWrite); }];}-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location{ //NSLog(@"%@",location); //下载完成,将文件剪切到我们的cache文件夹当中去 NSString *cachePath=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; NSString *fileName=[cachePath stringByAppendingPathComponent:@"video.mp4"]; NSFileManager *fileManager=[NSFileManager defaultManager]; [fileManager moveItemAtURL:location toURL:[NSURL fileURLWithPath:fileName] error:nil]; NSLog(@"%@",fileName); }//不管下载成功还是失败,都会来到该方法,不过下载失败的话,error有值,下载成功error为null-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{ if (error) { NSLog(@"下载失败了%@",error); }}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
0 0
- 通过NSURLSessionDownloadTask代理实现下载大文件
- NSURLSessionDownloadTask下载文件
- NSURLSessionDownloadTask文件下载
- iOS开发网络篇 一一 NSURLSessionDownloadTask实现文件下载
- 通过代理下载文件
- 网络编程05-通过NSURLSessionDownloadTask来下载
- 系统NSURLSessionDownloadTask实现简单的断点下载
- 通过一个单例持有多个下载NSURLSessionDownloadTask
- 通过CMWAP下载大文件一种实现方法
- NSURLSessionDownloadTask 下载/断点下载
- Servlet实现代理文件下载
- IOS开发Swift用NSURLSessionDownloadTask实现后台下载
- iOS开发网络篇 一一 NSURLSessionDownloadTask实现断点下载
- 文件的下载(通过NSURLConnection代理)
- NSURLSessionDownloadTask 断点下载
- NSURLSessionDownloadTask下载内容
- NSURLSessionDownloadTask(下载任务)
- NSURLSessionDownloadTask下载图片
- android聊天器(仿QQ)编写第一天__界面的搭建和主要的布局
- js 实现图片位置随意变化
- JAVA IO(三)
- 专题二:搜索总结报告
- BZOJ4524: [Cqoi2016]伪光滑数
- 通过NSURLSessionDownloadTask代理实现下载大文件
- 多线程编程之三个面试题
- MyBaits传递多个参数
- c++检测JAVA环境
- 约瑟夫环and同余方程组模板(exgcd求解同余方程组)
- echo写vbs下载者木马
- Python中的序列结构数据类型
- BZOJ 3998 TJOI 2015 弦论 后缀自动机
- Android Volley和Android-async-http两个网络框架比较