NSURLSession创建Task的三种类型
根据职能不同Task有三种子类:
NSURLSessionUploadTask:上传用的Task,传完以后不会再下载返回结果;
NSURLSessionDownloadTask:下载用的Task;
NSURLSessionDataTask:可以上传内容,上传完成后再进行下载。
![](https://img.haomeiwen.com/i694556/7df3ef394661c2a1.png)
如何获得NSURLSession(两种方式)
1、获得共享的Session
+ (NSURLSession *)sharedSession;
2、自定义Session(可实现想session的代理方法)
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration delegate:(id )delegate delegateQueue:(NSOperationQueue *)queue;
简要介绍NSURLSession发送post请求的方案 异步
![](https://img.haomeiwen.com/i694556/83a81144b9a7bbc7.png)
NSURLSessionDownloadTask 用法
使用步骤 (DownLoadTask)(小文件)
![](https://img.haomeiwen.com/i694556/2418f83e43396b09.png)
使用步骤 (DownLoadTask)(大文件 需实现代理方法监控下载进度)
1.创建NSURLSession 并执行任务
![](https://img.haomeiwen.com/i694556/7d4729eb1b1aa3a4.png)
2.内部控制方法(开始 暂停 继续)
![](https://img.haomeiwen.com/i694556/f66b2b3932cd916f.png)
3.实现代理方法
![](https://img.haomeiwen.com/i694556/29afbbeed8346fa4.png)
NSURLSessionDataTask(开发中常用做法)
优势:可实现文件离线断点下载
代码实现:
1.添加属性
![](https://img.haomeiwen.com/i694556/81e97923f6deb59d.png)
2.懒加载
![](https://img.haomeiwen.com/i694556/86ca89ba1bb9127b.png)
3.内部控制方法
![](https://img.haomeiwen.com/i694556/cc91a72492a0329f.png)
4.获取本地资源大小
![](https://img.haomeiwen.com/i694556/86639ccdb53951e2.png)
5.实现代理方法,监听下载进度 打开输出流
![](https://img.haomeiwen.com/i694556/ac3b5899ac664e9d.png)
6.下载完成 关闭输出流
![](https://img.haomeiwen.com/i694556/fd43bd8118d5e6c2.png)
网友评论