gpt4 book ai didi

ios - 如何返回由一堆异步 HTTP 请求组合而成的对象数组?

转载 作者:行者123 更新时间:2023-11-29 02:31:36 24 4
gpt4 key购买 nike

在一些成功的 HTTP 请求之后,我想在回调中返回 totalArray,但只有在所有请求都成功之后。在做了一些研究之后,我发现我应该以某种方式使用 grand central dispatch 或 NSLock 之类的东西,但我不确定如何使用它们。我该怎么做?

+ (void)httpRequestOnParameters:(NSURL*)url parametersArray:(NSArray*)parametersArray success:(Success)success failure:(Failure)failure {

NSMutableArray* totalArray = [NSMutableArray new];
for (NSDictionary* parameter in parametersArray) {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:[url absoluteString]
parameters:parameter
success:^(AFHTTPRequestOperation *operation, id responseObject) {

[totalArray addObject:responseObject];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
}

success(totalArray);
}

最佳答案

您可以尝试在第一次异步调用之前使用设置为 0 的计数器。然后在成功代码块中,增加计数器并放置一个 if block ,检查计数器何时达到所需的异步调用数量。

counter = 0;
numAsyncCalls = x;
array = [ ];

asyncCall {
mainCode: ...
success: counter ++;
array.push(callResult);
if (counter == numAsyncCalls){
''Execute desired code on
''populated array[]
}
}

这有意义吗?抱歉,如果这篇文章看起来很简陋,我正在 iPad 上尝试堆栈交换应用程序。

关于ios - 如何返回由一堆异步 HTTP 请求组合而成的对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26789268/

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