gpt4 book ai didi

afnetworking - 如何执行一批相互依赖的 AFNetworking 请求

转载 作者:行者123 更新时间:2023-12-01 10:05:24 29 4
gpt4 key购买 nike

我需要执行一系列按顺序运行的服务器调用,并且只有在所有先前的请求都成功时才能执行一个请求。

所以,我的想法是为每个请求创建一个 AFHTTPRequestOperation 并使用 [myAFHTTPClient enqueueBatchOfHTTPRequestOperations:] 来触发它们。

我可以通过调用
让它们按顺序运行[myAFHTTPClient.operationQueue setMaxConcurrentOperationCount:1]

但是我怎样才能确保只有前面的操作成功才能运行剩余的操作?

我尝试为每个调用 [myAFHTTPClient cancelAllOperations] 的操作创建一个 completionBlock 以防操作失败,但 completionBlock 和队列中的下一个操作同时运行,因此下一个请求在被取消之前可能已经发送到服务器。我该怎么办?

最佳答案

因为 AFHTTPRequestOperations 只是标准的 NSOperations,所以写了一个示例项目并想出了解决这个问题的方法:

如果 NSOperationQueuemaxConcurrentOperationCount 设置为 1,一个 NSOperationcompletionBlock 和下一个NSOperation 在队列中同时运行。

但是,如果每个 NSOperation 都通过调用 addDependency: 链接到其前一个操作,则操作的执行会等到前一个操作的 completionBlock 已经完成。

因此,通过 addDependency: 将所有 NSOperations 链接在一起,如果操作失败,则取消当前操作的完成 block 中的剩余操作。

(另见 Do NSOperations and their completionBlocks run concurrently?)

关于afnetworking - 如何执行一批相互依赖的 AFNetworking 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417924/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com