HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – NSOperationQueue如何等待两个异步操作?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何让NSOperationQueue(或其他任何东西)等待带有回调的两个异步网络调用?流程需要看起来像这样 @H_944_5@ @H_944_5@
Block Begins {
    Network call with call BACk/block begins {
        first network call is done 
    }
}
Second Block Begins {
    Network call with call BACk/block begins {
        second network call is done 
    }
} 

Only run this block once the NETWORK CALLS are done {
    blah
}
@H_944_5@这是我到目前为止所拥有的.

@H_944_5@
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
__block NSString *var;


[queue addoperation:[NSBlockOperation blockOperationWithBlock:^{
   [AsyncReq get:^{
       code
    } onError:^(NSError *error) {
       code
    }];
}]];

[queue addoperation:[NSBlockOperation blockOperationWithBlock:^{
   [AsyncReq get:^{
       code
    } onError:^(NSError *error) {
       code
    }];
}]];
[queue waitUntilAllOperationsAreFinished];
//do something with both of the responses

解决方法

你必须使用NSOperation Queue吗?以下是您如何使用调度组执行此操作: @H_944_5@ @H_944_5@
dispatch_group_t group = dispatch_group_create();

dispatch_group_enter(group);
[AsyncReq get:^{
    code
    dispatch_group_leave(group); 
} onError:^(NSError *error) {
    code
    dispatch_group_leave(group);
}];


dispatch_group_enter(group);
[AsyncReq get:^{
    code
    dispatch_group_leave(group); 
} onError:^(NSError *error) {
    code
    dispatch_group_leave(group);
}];

dispatch_group_notify(group,dispatch_get_main_queue(),^{
    NSLog(@"Both operations completed!")
});

大佬总结

以上是大佬教程为你收集整理的ios – NSOperationQueue如何等待两个异步操作?全部内容,希望文章能够帮你解决ios – NSOperationQueue如何等待两个异步操作?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。