ios - Alamofire 如何将request添加到一个队列里面,顺序执行??
黄舟
黄舟 2017-04-18 09:33:38
0
3
841

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(3)
Ty80

使用 NSOperationQueue

伊谢尔伦

建立一個 NSOperationQueue ,设置其 maxConcurrentOperationCount1,這樣就順序執行了。

queue.addOperationWithBlock {
    manager.request(.GET, ...)
}
小葫芦

好吧,我貼下程式碼吧

如果這個網路請求本身是非同步的話,那麼加入現成佇列一定也會直接非同步掉,直接執行下一個,是沒辦法直接排隊執行的。

所以你有兩個個方法來處理,一個是可以用訊號阻塞,另一個是可以在完成後,回調下一個操作,簡而言之就是類似於

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

訊號阻塞也可以用,但是效率上要打一些折扣了,這樣寫應該很好理解了吧?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板