Write in the first
苹果在 iOS9 之后已经废弃了 NSURLConnection
,所以在现在的实际开发中,除了大家常见的 AFN 框架,一般使用的是 iOS7
之后推出的 NSURLSession,作为一名【iOS 开发者】,如果你只知道 AFN 框架 来进行网络请求,那就 X x 了。
本篇文章主要从【NSURLSession 详解使用】学习总结。
在「时间 & 知识 」有限内,总结的文章难免有「未全、不足 」的地方,还望各位好友指出,以提高文章质量。
目录:
- NSURLSession 介绍
- NSURLSession 优势
- NSURLSession 子类基本使用
- NSURLSessionDownloadTask 大文件下载
- NSURLSessionDataTask 断点下载 | 支持离线
- URLSessionDataTask 断点下载效果
1. NSURLSession 介绍
|
|
Task的类型
2. NSURLSession 优势
|
|
3. NSURLSession 子类基本使用
1.GET请求
|
|
2.POST请求
|
|
3.设置代理发送请求
|
|
遵守<NSURLSessionDataDelegate>
实现 代理方法
4. 设置代理之后的强引用问题
|
|
4. NSURLSessionDownloadTask 大文件下载
1.DownloadTask:Block方式
|
|
注
DownloadTask:Block方式优点
:不需要担心内存(边接受数据边写入沙盒(tmp临时文件目录)的操作)缺点
:无法监听文件下载进度
2.DownloadTask:Dlegate方式
遵守<NSURLSessionDownloadDelegate>
协议,实现代理方法。可以在didWriteData(写数据)代理方法,监听下载进度
注
DownloadTask:Dlegate方式,解决了无法监听下载进度的问题
5.DownloadTask断点下载
|
|
NSURLSessionDownloadDelegate
代理方法
注
6. NSURLSessionDataTask 断点下载 | 支持离线
NSURLSessionDataTask 实现大文件
1.开始下载、暂停下载、取消下载、恢复下载
2.支持后台下载|上传(离线 断点)
3.在处理下载任务的时候可以直接把数据下载到磁盘
4.下载的时候是子线程异步处理,效率更高
属性定义:
懒加载(方法的独立与抽取):
NSURLSessionDataDelegate 代理方法
期待
- 如果在阅读过程中遇到 error || new ideas,希望你能 messages 我,我会及时改正谢谢。
- 点击右上角的 喜欢 和 订阅Rss 按钮,可以收藏本仓库,并在 Demo 更新时收到邮件通知。