当使用 maxConcurrentOperationCount=1 时,AFNetworking 是否会在完成块完成之前使新请求出队?

Does AFNetworking dequeue a new request before completion block finishes, when using maxConcurrentOperationCount=1?

我正在使用 AFNetworking 并将其内置 operationQueue 的 maxConcurrentOperationCount 值设置为 1(基本上我想按顺序发送请求)。

我想知道在 正在进行的请求的完成块完成之前,新请求是否会从操作队列中出队。新请求是在调用完成队列之前启动,还是等待完成块完成。

谢谢

正如@mattt 在他的评论中所解释的那样,AFNetworking 使用的操作队列将在前一个请求的 completionBlock 执行期间启动新请求。他的评论回答了我原来的问题。

但是,由于 AFNetworking 在并发 dispatch_queue 中调用了相应的 success/failure 块 AFHTTPRequestOperation 对象,目前您甚至无法保证完成块调用顺序与请求入队顺序相同如果你使用 maxConcurrentOperationCount = 1。有关此问题的详细信息,请参阅 here

感谢@mattt 的帮助!