使用ASIHTTPRequest与NSOperationQueu
2016-03-26 本文已影响1040人
lfb_CD
这些时间做的一个下载上传项目,恰好又看到 DeveloperLx 吐槽使用AFNetworking
和 NSOperationQueue
多么坑的文章。于是想分享下我是怎么做的,不过是使用的
ASIHTTPRequest
+ NSOperationQueue
github 同步地址:我的github
我实现的效果浏览 :
downloadQueue.gif主要思路
对每一个下载任务 生成一个 Request
添加到 NSOperationQueue
队列 中,在下载过程中做监听,对相应任务做出相应的暂停,取消,恢复,存档等操作。界面更新 则使用 block
做监听
核心代码
代码不能完全开源,提供关键代码供学习交流
欢迎 Star 没准儿哪天就开源了 _
NSOperationQueue 下载队列
data.png1、 addDownloadMisson 添加下载队列
addDownloadMisson.png2、cancelDownloadMisson 取消下载队列
cancelDownloadMisson.png3、suspendDownloadMisson 暂停下载队列
suspendDownloadMisson.png4、resumeDownloadMisson 恢复下载队列
resumeDownloadMisson.png5、addListener 添加监听
addListener.pngASIFormDataRequest 下载请求
上传做法是类似的
不过需要做到断点上传的话,就有点不同了。
我的做法是 把每个上传操作封装成 NSBlockOperation
添加到 NSOperationQueue
上传队列中,在封装成NSBlockOperation
的时候把上一次的 token
还有已上传的数据量传入。 界面更新也是使用 Block
做监听就行
如果你有什么想法欢迎与我交流