美文网首页
实现同步的AFNetworking

实现同步的AFNetworking

作者: 武_IOS书 | 来源:发表于2019-01-08 20:30 被阅读0次

    通过信号量的方式,阻塞线程。达到同步AFNetworking的目的。

            dispatch_semaphore_t sema = dispatch_semaphore_create(0);//创建一个为1信号量的信号
            dispatch_queue_t queue = dispatch_queue_create("com.ERH", DISPATCH_QUEUE_CONCURRENT);
            dispatch_async(queue, ^{
                [self.commonViewModel countryList:^(NSArray *arrCountry) {
                    long x  = dispatch_semaphore_signal(sema);
                    NSLog(@"--%ld",x);
                } queue:queue];
            });
            long x =  dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
            NSLog(@"--%ld",x);
    

    需要注意的是,AFNetorking默认的返回是在主线程中执行,因为主线程被阻塞,所以需要设置AFNetworking的返回在子线程中执行。返回后修改信号量。

    相关文章

      网友评论

          本文标题:实现同步的AFNetworking

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