iOS知识收集ios框架iOS开发

使用ASIHTTPRequest与NSOperationQueu

2016-03-26  本文已影响1040人  lfb_CD

这些时间做的一个下载上传项目,恰好又看到 DeveloperLx 吐槽使用AFNetworkingNSOperationQueue 多么坑的文章。于是想分享下我是怎么做的,不过是使用的
ASIHTTPRequest + NSOperationQueue
github 同步地址:我的github

我实现的效果浏览 :

downloadQueue.gif

主要思路

对每一个下载任务 生成一个 Request 添加到 NSOperationQueue 队列 中,在下载过程中做监听,对相应任务做出相应的暂停,取消,恢复,存档等操作。界面更新 则使用 block 做监听

核心代码

代码不能完全开源,提供关键代码供学习交流
欢迎 Star 没准儿哪天就开源了 _

NSOperationQueue 下载队列

data.png

1、 addDownloadMisson 添加下载队列

addDownloadMisson.png

2、cancelDownloadMisson 取消下载队列

cancelDownloadMisson.png

3、suspendDownloadMisson 暂停下载队列

suspendDownloadMisson.png

4、resumeDownloadMisson 恢复下载队列

resumeDownloadMisson.png

5、addListener 添加监听

addListener.png

ASIFormDataRequest 下载请求



上传做法是类似的

不过需要做到断点上传的话,就有点不同了。
我的做法是 把每个上传操作封装成 NSBlockOperation 添加到 NSOperationQueue 上传队列中,在封装成NSBlockOperation的时候把上一次的 token 还有已上传的数据量传入。 界面更新也是使用 Block做监听就行

如果你有什么想法欢迎与我交流

上一篇下一篇

猜你喜欢

热点阅读