ASINetworkQueue 与 NSOperationQueue区别
来源:互联网 发布:数控铣床编程与加工 编辑:程序博客网 时间:2024/06/08 03:36
转载自:http://www.dreamingwish.com/dream-2011/powerful-asihttprequest-library-two.html
对于ASINetworkQueue
ASINetworkQueue是NSOperationQueue的子类,提供更高级的特性(ASINetworkQueue的代理函数):
- requestDidStartSelector
当一个request开始执行时,这个代理函数会被调用。 - requestDidReceiveResponseHeadersSelector
当队列中的request收到服务器返回的头信息时,这个代理函数会被调用。对于下载很大的文件,这个通常比整个request的完成要早。 - requestDidFinishSelector
当每个request完成时,这个代理函数会被调用。 - requestDidFailSelector
当每个request失败时,这个代理函数会被调用。 - queueDidFinishSelector
当队列完成(无论request失败还是成功)时,这个代理函数会被调用。
ASINetworkQueues与NSOperationQueues稍有不同,加入队列的request不会立即开始执行。如果队列打开了进度开关,那么队列开始时,会先对所有GET型request进行一次HEAD请求,获得总下载大小,然后真正的request才被执行。
向一个已经开始进行的ASINetworkQueue 加入request会怎样?
如果你使用ASINetworkQueue来跟踪若干request的进度,只有当新的request开始执行时,总进度才会进行自适应调整(向后移动)。ASINetworkQueue不会为队列开始后才加入的request进行HEAD请求,所以如果你一次向一个正在执行的队列加入很多request,那么总进度不会立即被更新。
如果队列已经开始了,不需要再次调用[queue go]。
当ASINetworkQueue中的一个request失败时,默认情况下,ASINetworkQueue会取消所有其他的request。要禁用这个特性,设置 [queue setShouldCancelAllRequestsOnFailure:NO]。
ASINetworkQueues只可以执行ASIHTTPRequest操作,二不可以用于通用操作。试图加入一个不是ASIHTTPRequest的NSOperation将会导致抛出错误。
- ASINetworkQueue 与 NSOperationQueue区别
- NSOperationQueue与GCD的区别
- GCD与NSOperationQueue的区别
- 多线程技术中GCD与NSOperationQueue的区别
- GCD 与 NSOperationQueue
- iOS NSOperationQueue与GCD
- NSOperationQueue和GCD的区别
- GCD和NSOperationQueue的区别
- ASINetworkQueue讲解
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationqueue
- NSOperationQueue
- 对于开发 0 bug 代码的思考——Design by Contract 契约设计
- JForum首页跳转
- 算法之美——求两直线交点(三维叉积)——求四边形面积(二维叉积)
- 进程的交互
- vi的用法大全
- ASINetworkQueue 与 NSOperationQueue区别
- C# 多线程编程,传参,接受返回值
- 在php上安装mcrypt、bcmath和openssl扩展(银联业务需要)
- 爸妈吵架对孩子的伤害有多严重?(图)
- Java线程学习之一---售票
- 给数据结构初学者:跨过算法和程序之间的鸿沟
- 钓鱼岛
- 制作支持MySql的Postfix包
- 【初学maven】helloword建立(二)