搜索

首页  >  问答  >  正文

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

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

黄舟黄舟2772 天前851

全部回复(3)我来回复

  • PHP中文网

    PHP中文网2017-04-18 09:35:38

    使用 NSOperationQueue

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:35:38

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

    queue.addOperationWithBlock {
        manager.request(.GET, ...)
    }

    回复
    0
  • 高洛峰

    高洛峰2017-04-18 09:35:38

    好吧,我贴下代码吧

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

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

     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
    }];

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

    回复
    0
  • 取消回复