iOS 多个异步请求,返回必要的数据后才更新UI,如何实现

iOS 多个异步请求,返回必要的数据后才更新UI,如何实现

阅读 9.9k
5 个回答
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue1 = dispatch_queue_create("12313", NULL);
dispatch_queue_t queue2 = dispatch_queue_create("4234234", NULL);
dispatch_queue_t queue3 = dispatch_queue_create("45678", NULL);
dispatch_group_async(group, queue1, ^{
    for (NSInteger i = 0; i < 10000; i++) {
        NSLog(@"1:%d",i);
    }
});
dispatch_group_async(group, queue1, ^{
    for (NSInteger j = 0; j < 10000; j++) {
        NSLog(@"2:%d",j);
    }
});
dispatch_group_async(group, queue2, ^{
    for (NSInteger k = 0; k < 10000; k++) {
        NSLog(@"3:%d",k);
    }
});
dispatch_group_async(group, queue3, ^{
    for (NSInteger z = 0; z < 10000; z++) {
        NSLog(@"4:%d",z);
    }

});

dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    for (NSInteger a = 0; a < 10000; a++) {
        NSLog(@"最后:%d",a);
    }
});

这个要不然自己控制,要不然用PromiseKit吧。。

我猜是每个异步请求都会获取部分数据,所有异步请求完成过后,数据才是完整的,才能去显示UI 是吧。 可以设置一个标志位,每个请求成功加一,如果这个标志位等于请求的个数,则刷新UI。 不知道行不行

新手上路,请多包涵

设置BOOL类型的状态,判断BOOL变量的值,来确定是否已经全部结束

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题