iOS网络请求按顺序执行

iOS网络请求按顺序执行,第1张

dispatch_async(dispatch_get_global_queue(0,0), ^{

        NSLog(@"开始");

        dispatch_semaphore_t sema = dispatch_semaphore_create(0);

        NSMutableArray *dominArray = [self doaminArr];

        for (int i = 0; i < dominArray.count; i ++) {

            NSLog(@"dominArray:%@%d",dominArray[i],i);

// 循环请求接口

            [self pingURLString:dominArray[i] success:^(NSURLSessionDataTask *task, id responseObject) {

                if ([responseObject[@"status"]integerValue] == returnCode ) {

                    NSLog(@"dominArrayrequest:%@%d",dominArray[i],i);

// 成功之后, return结束当前网络请求

                    return;

                }

// 循环继续执行

                dispatch_semaphore_signal(sema);

            } failure:^(NSURLSessionDataTask *task, NSError *error) {

// 报错继续执行

                dispatch_semaphore_signal(sema);

            }];

// 等待执行

            dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

        }

        NSLog(@"结束");

    });

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/994281.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存