IOS简单的异步转同步操作

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

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

-(void)waitObject

{

    NSRunLoop*runLoop = [NSRunLoopcurrentRunLoop];

    isStart=TRUE;

    while(isStart==TRUE){

        @autoreleasepool {

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

        }

    }

}

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

你可能感兴趣的:(IOS简单的异步转同步操作)