ios – NSOperationQueue如何等待两个异步 *** 作?

ios – NSOperationQueue如何等待两个异步 *** 作?,第1张

概述如何让NSOperationQueue(或其他任何东西)等待带有回调的两个异步网络调用?流程需要看起来像这样 Block Begins { Network call with call back/block begins { first network call is done }}Second Block Begins { Network call 如何让NSOperationQueue(或其他任何东西)等待带有回调的两个异步网络调用?流程需要看起来像这样

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}

这是我到目前为止所拥有的.

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吗?以下是您如何使用调度组执行此 *** 作:

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如何等待两个异步 *** 作?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存