美文网首页iOS知识收集ios框架iOS开发
使用ASIHTTPRequest与NSOperationQueu

使用ASIHTTPRequest与NSOperationQueu

作者: lfb_CD | 来源:发表于2016-03-26 23:50 被阅读1040次

这些时间做的一个下载上传项目,恰好又看到 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做监听就行

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

相关文章

网友评论

  • 陈藩:有碰到这个地方崩溃吗
    if (delegate && [delegate respondsToSelector:didFailSelector]) {
    [delegate performSelector:didFailSelector withObject:self];
    }
  • f3618152ec48:6666666膜拜大佬
  • 我是卖报滴小行家:最喜欢研究上传下载了,快开源吧 :smiley:
  • pelsor:能不能开源啊?代码太少,看不太明白
    lfb_CD:@pelsor 改天可以写这个流程图,代码暂时还不能开源
  • 司马捷:真不是吐槽,这些代码 真没什么 - - :joy:
    lfb_CD:@机器人小雪 反正有不少人来感谢我啊,就说明还是有不少人需要的٩(ˊᗜˋ*)و
    司马捷:@lfb_CD - -,我竟无言以对.
    lfb_CD:@机器人小雪 网上下载管理分享的不多,抛砖引玉,你也可以分享下你是怎么做的啊
  • 不是谢志伟:学习了, 正准备做一个下载模块
  • b03837490807:怎么解决复用的?block不太行啊
    lfb_CD:@卖报的小当家 block在遍历cell的时候通过addListener传入,我不知道问的是不是界面更新那一块

本文标题:使用ASIHTTPRequest与NSOperationQueu

本文链接:https://www.haomeiwen.com/subject/nowdlttx.html