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