如题,Alamofire 如何将request添加到一个队列里面,顺序执行??
人生最曼妙的风景,竟是内心的淡定与从容!
使用 NSOperationQueue
建立一個 NSOperationQueue ,设置其 maxConcurrentOperationCount 为 1,這樣就順序執行了。
NSOperationQueue
maxConcurrentOperationCount
1
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 }];
訊號阻塞也可以用,但是效率上要打一些折扣了,這樣寫應該很好理解了吧?
使用 NSOperationQueue
建立一個
NSOperationQueue
,设置其maxConcurrentOperationCount
为1
,這樣就順序執行了。好吧,我貼下程式碼吧
如果這個網路請求本身是非同步的話,那麼加入現成佇列一定也會直接非同步掉,直接執行下一個,是沒辦法直接排隊執行的。
所以你有兩個個方法來處理,一個是可以用訊號阻塞,另一個是可以在完成後,回調下一個操作,簡而言之就是類似於
然後把 operation 全部放到一個 operations 數組中去
然後
訊號阻塞也可以用,但是效率上要打一些折扣了,這樣寫應該很好理解了吧?