【IOS】多个请求完成的监听(dispatch_group_t)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cl61917380/article/details/84975543

PS: CLNetworking使用的是AFNetworking封装的,没有特别的地方

-(IBAction)groupCilck:(id)sender{
    //如果多次调用groupCilck方法时,dispatch_group_t对象应为成员变量,只创建一次
    dispatch_group_t group = dispatch_group_create();
    for (int i=0; i<5; i++) {
        dispatch_group_enter(group);
        [[CLNetworking sharedInstance]postData:@"https://www.baidu.com" params:nil successBlock:^(id  _Nonnull result) {
            NSLog(@"request success %d",i);
            dispatch_group_leave(group);
        } failBlock:^(id  _Nonnull result) {
            NSLog(@"request fail %d",i);
            dispatch_group_leave(group);
        }];
    }
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        NSLog(@"request finish...");
    });
    NSLog(@"groupCilck...");
// 无序,且finish总是最后

// groupCilck...
// request success 2
// request success 3
// request success 0
// request success 1
// request success 4
// request finish...
}

猜你喜欢

转载自blog.csdn.net/cl61917380/article/details/84975543
今日推荐