dispatch_group多个并发的请求总结果的管理

需求:公司当前的项目有一个页面是需要两个请求并发,且都成功后才算整个界面的数据请求成功

思路:首先想到的就是用dispatch_group,可写好后dispatch_notify并未等请求的block都执行完后才走,后就定义了个bool属性,采用kvo的方式实现了,事后还是感觉不是很好,就又找了些资料,经实践dispatch_group的enter group和leave group可实现需求

关键代码如下

dispatch_group_t group = dispatch_group_create();

dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

dispatch_group_enter(group);

dispatch_group_async(group, queue, ^{

//request

       [self requestPropertiesWithParams:skuParams success:^() {

            dispatch_group_leave(group);

       } failed:^(NSString *errMsg) {

          self.isFailed = YES;

         dispatch_group_leave(group);

     }];

});

dispatch_group_enter(group);

dispatch_group_async(group, queue, ^{

        [self requetGoodsPropertiesDetailWithParams:skugoodsParams                         success:^() {

              dispatch_group_leave(group);

       } failed:^(NSString *errMsg) {

            self.isFailed = YES;

             dispatch_group_leave(group);

      }];

});

dispatch_group_notify(group, dispatch_get_main_queue(), ^{

          if (self.isFailed == YES) {

                  if (self.requestFailedBlock) {

                     self.requestFailedBlock(@"请求失败");

                }

           }else{

                  [self filterData];

                 HLGoodsDetailModel *model =  [self          getNewModel:self.goodsDetailModel];

               [self.itemsDict setObject:model forKey:fileName];

               if (self.requestSuccessBlock) {

                    self.requestSuccessBlock(model);

               }

       }

});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、设置UILabel行间距 NSMutableAttributedString*attrString=[[NSM...
    iOS祎阅读 6,669评论 0 0
  • NSThread 第一种:通过NSThread的对象方法 NSThread *thread = [[NSThrea...
    攻城狮GG阅读 4,310评论 0 3
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    FF_911阅读 5,272评论 0 3
  • 时间:2017年11月7日 地点:天津豆丁公寓 作者:阮博杰 1.我怎么如此幸运,波波传递,今天跟自己的感觉变好了...
    阮博杰阅读 1,009评论 0 0
  • 你可知道我在想你? 你却把我的思念抛在了风里。 爱与亲情难以割舍, 天长地远牵挂的还有那份思绪。 日子拉长了人的情...
    琢玉书生阅读 1,369评论 0 4

友情链接更多精彩内容