gpt4 book ai didi

iphone - AFNetworking:enqueueBatchOfHTTPRequestOperations 问题与完成 block

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:09 25 4
gpt4 key购买 nike

我使用这个 AFNetworking 方法一次启动多个请求:

- (void)enqueueBatchOfHTTPRequestOperations:(NSArray *)operations 
progressBlock:(void (^)(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations))progressBlock
completionBlock:(void (^)(NSArray *operations))completionBlock

其中一个是 AFJSONRequestOperation。问题在于此 JSON 操作的成功 block 是在批处理的完成 block 之后执行的。原因是:AFJSONRequestOperation 有一个用于 JSON 处理的内部调度队列。因此,在调用完成 block 时,JSON 数据仍在处理中。

问题:JSON 操作的成功 block 被调用后,如何执行完成 block 中的代码?

我试图在主队列上分派(dispatch)一个代码块,但这没有帮助。

最佳答案

如果可能,最简单的解决方案可能就是将您的处理代码从每个操作的成功 block 移动到整个批处理的完成 block 。

您在完成 block 中有可用的 NSArray *operations,您可以遍历这些操作并查找:

for(AFHTTPRequestOperation *operation in operations){
if(operation.response.statusCode == 200){
//Do something with the response
}else{
//Handle the failure
}
}

如果您需要执行不同的操作,您还可以通过 operation.request.URL 属性获得每个操作的 url 地址

关于iphone - AFNetworking:enqueueBatchOfHTTPRequestOperations 问题与完成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11050287/

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