Alamofire 如何将request添加到一个队列里面,顺序执行??

如题,Alamofire 如何将request添加到一个队列里面,顺序执行??

阅读 4.9k
4 个回答

使用 NSOperationQueue

创建一个 NSOperationQueue ,设置其 maxConcurrentOperationCount1,这样就顺序执行了。

queue.addOperationWithBlock {
    manager.request(.GET, ...)
}
新手上路,请多包涵

每次请求自动为你开线程 RequestTask 枚举类型控制队列 如果需要对队列进行操作使用TaskDelegate 不需要再开线程了 例如请求失败需要让再次请求 使用TaskDelegate下的reset 函数

好吧,我贴下代码吧

如果这个网络请求本身是异步的话,那加入现成队列肯定也会直接异步掉,直接执行下一个,是没法直接排队执行的。

所以你有两个个方法来处理,一个是可以用信号阻塞,另一个是可以在完成后,回调下一个操作,简而言之就是类似于

 NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ 
    //your request
}];

然后把 operation 全部放到一个 operations 数组中去

然后

 NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ 
    //your request
    // success in your request--> callback next operation
    // fail in your request-->do something
}];

信号阻塞也可以用,但是效率上要打一些折扣了,这样写应该很好理解了吧?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题