iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3343字,纯文字阅读大概需要5分钟。
内容图文
![iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载](/upload/InfoBanner/zyjiaocheng/1126/cc8ffab9a52a4f279d3ac742e076453f.jpg)
0.导入框架准备工作
---->
1.UI准备工作
1 @interface ViewController () 2 { 3 // 下载句柄 4 NSURLSessionDownloadTask *_downloadTask; 5 }
1 .h文件 2 #import <UIKit/UIKit.h> 3 4@interface ViewController : UIViewController 5// 下载文件显示 6 7 @property (weak, nonatomic) IBOutlet UIImageView *imageView; 8// 下载进度条显示 910 @property (weak, nonatomic) IBOutlet UIProgressView *progressView; 11@end1213.m文件 14@interface ViewController () 15{ 16// 下载句柄17 NSURLSessionDownloadTask *_downloadTask; 18 }
2.利用AFN实现文件下载操作细节
1 - (void)downFileFromServer{ 2 3//远程地址 4 NSURL *URL = [NSURL URLWithString:@"http://www.baidu.com/img/bdlogo.png"]; 5//默认配置 6 NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 7 8//AFN3.0+基于封住URLSession的句柄 9 AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; 1011//请求12 NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 1314//下载Task操作15 _downloadTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { 1617// @property int64_t totalUnitCount; 需要下载文件的总大小 18// @property int64_t completedUnitCount; 当前已经下载的大小 1920// 给Progress添加监听 KVO21 NSLog(@"%f",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount); 22// 回到主队列刷新UI23 dispatch_async(dispatch_get_main_queue(), ^{ 24// 设置进度条的百分比2526 self.progressView.progress = 1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount; 27 }); 2829 } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { 3031//- block的返回值, 要求返回一个URL, 返回的这个URL就是文件的位置的路径3233 NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; 34 NSString *path = [cachesPath stringByAppendingPathComponent:response.suggestedFilename]; 35return [NSURL fileURLWithPath:path]; 3637 } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { 38//设置下载完成操作 39// filePath就是你下载文件的位置,你可以解压,也可以直接拿来使用4041 NSString *imgFilePath = [filePath path];// 将NSURL转成NSString42 UIImage *img = [UIImage imageWithContentsOfFile:imgFilePath]; 43 self.imageView.image = img; 4445 }]; 46 }
3.关于暂停和继续
1 - (IBAction)stopDownloadBtnClick:(id)sender { 2//暂停下载3 [_downloadTask suspend]; 4} 5 - (IBAction)startDownloadBtnClick:(id)sender { 6//开始下载7 [_downloadTask resume]; 8 }
4.检测网络状态--优化用户体验
1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 4//网络监控句柄 5 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; 6 7//要监控网络连接状态,必须要先调用单例的startMonitoring方法 8 [manager startMonitoring]; 910 [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { 11//status: 12//AFNetworkReachabilityStatusUnknown = -1, 未知 13//AFNetworkReachabilityStatusNotReachable = 0, 未连接 14//AFNetworkReachabilityStatusReachableViaWWAN = 1, 3G 15//AFNetworkReachabilityStatusReachableViaWiFi = 2, 无线连接16 NSLog(@"%d", status); 17 }]; 1819//准备从远程下载文件. -> 请点击下面开始按钮启动下载任务20 [self downFileFromServer]; 2122 }
转自:http://www.cnblogs.com/qingche/p/5362592.html
原文:http://www.cnblogs.com/lhw91/p/5687716.html
内容总结
以上是互联网集市为您收集整理的iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载全部内容,希望文章能够帮你解决iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。