IOS 如何处理多个网络请求的先后(依赖)关系

Posted xiyangxixia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 如何处理多个网络请求的先后(依赖)关系相关的知识,希望对你有一定的参考价值。

函数介绍

dispatch_semaphore_create(M)

创建一个值为M的信号量

dispatch_semaphore_wait(信号量,等待时间)

如果该信号量的值大于0,则使其信号量的值-1,否则,阻塞线程直到该信号量的值大于0或者达到等待时间。

dispatch_semaphore_signal(信号量)

释放信号量,使得该信号量的值加1

dispatch_group_t group = dispatch_group_create();
    dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
    dispatch_queue_t queue = dispatch_queue_create(NULL, DISPATCH_QUEUE_SERIAL);
    for (int j = 0; j < 4; j ++)
        dispatch_group_async(group, queue, ^

         if (j == 0)
                [self loadOne:semaphore];
            else if (j == 1)
                [self loadTwe:semaphore];
            else if (j == 2)
                [self loadThree:semaphore];
            else
                [self loadFour:semaphore];
           
            dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
        );
   
    
    dispatch_group_notify(group, queue, ^
        //所有请求返回数据后执行
        NSLog(@"完成");
    );

 

以上是关于IOS 如何处理多个网络请求的先后(依赖)关系的主要内容,如果未能解决你的问题,请参考以下文章

如何处理完成闭包中的多个错误

使用组件依赖时如何处理多个 Dagger 组件

如何处理网络中间请求的变化 - Alamofire

如何处理网络请求失败错误?

我应该如何处理包中的头文件?

跨平台颤振 - 如何处理依赖关系?