【发布时间】:2016-12-02 12:36:37
【问题描述】:
我有许多请求,我想在没有嵌套意大利面条代码的情况下一个接一个地调用。
我已经用串行调度队列试过了
let queue = dispatch_queue_create("label", DISPATCH_QUEUE_SERIAL)
Alamofire.request(Router.Countries).responseString { (response:Response<String, NSError>) in
print(1)
}
Alamofire.request(Router.Countries).responseString { (response:Response<String, NSError>) in
print(2)
}
Alamofire.request(Router.Countries).responseString { (response:Response<String, NSError>) in
print(3)
}
但不幸的是,这不起作用。其输出可以是 1,3,2 或 3,1,2 或任何其他组合。
依次获得输出 1、2、3 的最佳方法是什么。
【问题讨论】:
-
你是否有 n 次尝试,或者你已经知道你将有多少请求?
-
我知道我有多少,但当然最好是动态的
-
您尝试过使用
dispatch_semaphore吗?我实际上没有时间回复一个好的答案,但是您可以在 SO 中找到很多示例 -
Alamofire 只支持
dispatch_queue_t:/