美文网首页
记录iOS 同步请求问题

记录iOS 同步请求问题

作者: able要爆了 | 来源:发表于2018-10-10 11:04 被阅读0次

遇到个需求,就是一个动作需要请求几个接口才能完成(都只是查询动作,但是需要根据顺序去请求),平时上网随便看看别人写的基础知识,看到一篇GCD的文章,刚好看到信号量那一部分,决定使用信号量去解决这一个问题。。。

直接贴代码:

    __block dispatch_semaphore_t sem = dispatch_semaphore_create(0);

    // 创建队列

    dispatch_queue_t queue = dispatch_queue_create("requestBlock", NULL);

    dispatch_async(queue, ^{

        [self.webservice verifyPhoneSMSWithPhoneNum:self.privateAccountModel.mobilephone VerifyCode:self.privateAccountModel.authcode Complete:^(ASResponse * response) {

            if (response.isOpSuccess) {

                //成功之后的处理

            }else{

                [Toast showError:[response.error.userInfo objectForKey:NSLocalizedDescriptionKey]];

            }

            //信号量加1

            dispatch_semaphore_signal(sem);

        }];

// 只要信号量值不大于等于1,就会一直等待(-1)

        dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);

    });

    dispatch_async(queue, ^{

        [self.webservice getBankAccountTypeWithBankAccount:privateAccount[@"bankaccount"] Complete:^(ASResponse * response) {

            if (response.isOpSuccess) {

                //            _debit_credit_flag = response.

                [self checkCertificationWithPrivateParam:param bankCardType:[response.mapData[@"debit_credit_flag"] longValue]];

            }else{

                [Toast showError:[response.error.userInfo objectForKey:NSLocalizedDescriptionKey]];

            }

            dispatch_semaphore_signal(sem);

        }];

        // 只要信号量值不大于等于1,就会一直等待

        dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);

    });

//请求完之后再作统一处理

    dispatch_async(queue, ^{

        dispatch_async(dispatch_get_main_queue(), ^{

            [Toast done];

        });

    });

引用:https://blog.csdn.net/li15809284891/article/details/55097366

记录一下,以后再上来看看,作为菜鸟的我,要继续努力。

相关文章

  • 记录iOS 同步请求问题

    遇到个需求,就是一个动作需要请求几个接口才能完成(都只是查询动作,但是需要根据顺序去请求),平时上网随便看看别人写...

  • iOS - NSURLConnection&&N

    一、NSURLConnection iOS7之后不建议使用 GET请求发送同步请求 发送异步请求 POST请求: ...

  • 使用dispatch_group来进行线程同步

    我的上篇文章iOS中多个网络请求的同步问题总结中用到了dispatch_group来进行线程同步,对用法不是特别熟...

  • dispatch_group 处理异步任务的同步

    (一)、多个网络请求的同步问题 解决1:通过添加标识来判断请求是否全部结束用一个finishedCount变量记录...

  • iOS联网方式

    说明: 地址请查询API手册 iOS8以前的联网方式 同步请求 异步请求 NSURLConnection NSUR...

  • IOS 同步异步请求

    同步请求步骤: NSIntegerpage =1; NSIntegercount =10; NSString*st...

  • IOS同步请求API

    HTTP 全局规范 URLURL的组成:基本的网络地址 + 分支节点http://172.19.201.155:8...

  • 收集的一些iOS资料地址

    1、一行代码检测App更新,无需添加AppId等任何信息。地址 2 、iOS中多个网络请求的同步问题总结 原文地址...

  • NSURLSession来发送同步请求

    NSURLConnection 发送同步请求的方法在iOS9.0已经被废弃 + (nullable NSData ...

  • 网络数据请求自身心得

    今天来说说关于iOS开发过程中的网络数据请求。 现在常用的网络数据请求常见的有四种方式:同步GET,同步POST,...

网友评论

      本文标题:记录iOS 同步请求问题

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