iOS利用AFNetworking3.0——实现文件断点下载

时间:2021-05-20

0.导入框架准备工作  

1. 将AFNetworking3.0+框架程序拖拽进项目

2. 或使用Cocopod 导入AFNetworking3.0+

3. 引入

#import "AFNetworking.h"

1.UI准备工作  

A. 定义一个全局的 NSURLSessionDownloadTask:下载管理句柄

由其负责所有的网络操作请求

@interface ViewController (){ // 下载句柄 NSURLSessionDownloadTask *_downloadTask;}

.h文件

#import <UIKit/UIKit.h>@interface ViewController : UIViewController// 下载文件显示@property (weak, nonatomic) IBOutlet UIImageView *imageView;// 下载进度条显示@property (weak, nonatomic) IBOutlet UIProgressView *progressView;@end

.m文件

@interface ViewController (){ // 下载句柄 NSURLSessionDownloadTask *_downloadTask;}

2.利用AFN实现文件下载操作细节  

- (void)downFileFromServer{ //远程地址 NSURL *URL = [NSURL URLWithString:@"http://pletionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { //设置下载完成操作 // filePath就是你下载文件的位置,你可以解压,也可以直接拿来使用 NSString *imgFilePath = [filePath path];// 将NSURL转成NSString UIImage *img = [UIImage imageWithContentsOfFile:imgFilePath]; self.imageView.image = img; }];}

3.关于暂停和继续  

- (IBAction)stopDownloadBtnClick:(id)sender { //暂停下载 [_downloadTask suspend];}- (IBAction)startDownloadBtnClick:(id)sender { //开始下载 [_downloadTask resume];}

4.检测网络状态--优化用户体验  

- (void)viewDidLoad { [super viewDidLoad]; //网络监控句柄 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; //要监控网络连接状态,必须要先调用单例的startMonitoring方法 [manager startMonitoring]; [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { //status: //AFNetworkReachabilityStatusUnknown = -1, 未知 //AFNetworkReachabilityStatusNotReachable = 0, 未连接 //AFNetworkReachabilityStatusReachableViaWWAN = 1, 3G //AFNetworkReachabilityStatusReachableViaWiFi = 2, 无线连接 NSLog(@"%d", status); }]; //准备从远程下载文件. -> 请点击下面开始按钮启动下载任务 [self downFileFromServer]; }

源码:http://xiazai.jb51.net/201701/yuanma/AFNetworking3.0_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章