GCD 遇到的坑

作者: 蜗蜗牛在奔跑 | 来源:发表于2019-06-20 10:56 被阅读0次
dispatch_group_t group = dispatch_group_create();
    
    dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //        网络请求1
        [[RequestNetworkData defaultRequest] requestUrl:nil andInfo:nil andResultData:^(id obj, NSError *err) {
            
        }];

    });
    
    dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        
        //        网络请求2
        [[RequestNetworkData defaultRequest] requestUrl:nil andInfo:nil andResultData:^(id obj, NSError *err) {
            
        }];
    });

    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
       //合并
    });
    
//    然而问题来了,网络请求这玩意儿是封装好的,并且是个异步函数,大家应该都知道,异步函数不会阻塞线程,不用等里面的内容执行完就返回了,这就导致数据还没拿到,就开始执行notify里面的代码了。后来笔者发现,原来GCD组函数还有一种用法,完美解决问题
    
    dispatch_group_t group1 = dispatch_group_create();
    
        dispatch_group_enter(group1);
    
        //        网络请求
        [[RequestNetworkData defaultRequest] requestUrl:nil andInfo:nil andResultData:^(id obj, NSError *err) {
            
            dispatch_group_leave(group1);
        }];
        
    
    
        dispatch_group_enter(group1);
            //        网络请求
        [[RequestNetworkData defaultRequest] requestUrl:nil andInfo:nil andResultData:^(id obj, NSError *err) {

            dispatch_group_leave(group1);
        }];
    
    dispatch_group_notify(group1, dispatch_get_main_queue(), ^{
        //请求完成之后的处理
    });

相关文章

  • iOS进阶-多线程-GCD

    GCD 概念 GCD队列 使用总结 实用api 实用遇到的坑 一、 概念 GCD(grand central di...

  • GCD 遇到的坑

  • swift3.0版----使用一个UIImageView实现轮播

    使用一个UIImageView实现无限轮播功能比如:1.使用GCD定时器来解决NSTimer使用过程中的坑GCD定...

  • 实现一个基于GCD的定时器

    前言 NSTimer的特性(坑)上篇文章 提到过,基于这些特性(坑),用GCD写的定时器似乎更好用? 正文 先看A...

  • 遇到的坑

    1.文字两端居中 2.多个异步请求的执行顺序 点击页面上一个按钮发送两个ajax请求时,这两个异步请求会同时发送,...

  • 遇到的坑

    1、 2、每次改完pom.xml后项目的 Language level都会变成7,使用了jdk8新功能的地方都会报...

  • 遇到的坑++

    1.加在一个view的时候报了一个异常 android.view.InflateException: Binary...

  • 遇到的坑

    键盘通知导致UI异常现象描述:本地详情页的inputView输入框,做了很多的功能,由多个view组成,这时点击微...

  • 遇到的坑

    第一次访问是 this page could not be found,刷新一下就好了 路径错误 多了一个 ‘/’

  • iOS开发中遇到过的坑

    iOS开发中遇到过的坑 iOS开发中遇到过的坑

网友评论

    本文标题:GCD 遇到的坑

    本文链接:https://www.haomeiwen.com/subject/kbmnxxtx.html