美文网首页
IOS简单的异步转同步操作

IOS简单的异步转同步操作

作者: 唯咚特淘克安尼冒 | 来源:发表于2019-08-08 17:59 被阅读0次

曾遇到的问题:封装SDK中的某个接口时需要上传地理位置,而获取地理位置与网络请求是个异步操作,也就是说当地理位置拿到的慢一些时,上传的地理位置会为空。

解决:在网络请求之前用下面方法让线程等待

-(void)waitObject

{

    NSRunLoop*runLoop = [NSRunLoopcurrentRunLoop];

    isStart=TRUE;

    while(isStart==TRUE){

        @autoreleasepool {

            [runLooprunMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];

        }

    }

}

当在地理位置回调后 将isStart变量置为FALSE,退出runloop接着就可以同步执行网络请求的操作了。

相关文章

  • IOS简单的异步转同步操作

    曾遇到的问题:封装SDK中的某个接口时需要上传地理位置,而获取地理位置与网络请求是个异步操作,也就是说当地理位置拿...

  • iOS异步转同步操作

    异步方法同步执行 1.dispatch_group 2.dispatch_semaphore

  • IOS多线程总结

    目录 简述 NSThread GCD操作与队列异步操作并行队列同步操作并行队列同步操作串行队列异步操作串行队列队列...

  • vuex dispatch和commit 的区别

    dispatch:异步操作,commit :同步操作 为什么dispatch是异步而commit是同步呢? 首先,...

  • Promise--异步的解决方案

    Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口,使得异步操作具备同步操作...

  • vue store 存储 dispatch 和 commit的区

    dispatch: 含有异步操作 存储: 取值: commit:同步操作 存储: 取值:

  • iOS 多线程基础

    转自:iOS 多线程基础 - 简书 多线程同步和异步的区别?IOS中如何实现多线程的同步? 异步:可以同时执行多条...

  • 2018-06-19

    commit=>mutations,用来触发同步操作的方法。 dispatch =>actions,用来触发异步操...

  • 异步编程方法

    前言 同步与异步最直观的理解:等到操作执行完成才返回执行结果的是同步操作;反之,则是异步操作 传统的异步编程方法:...

  • Es6promise的用法

    Promise 的基本用法 Promise是异步编程的一种解决方案,Promise的优缺点优点将异步操作以同步操作...

网友评论

      本文标题:IOS简单的异步转同步操作

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