ios gcd实现多个请求全部结束后刷新界面

1.创建一个组

dispatch_group_t  group = dispatch_group_create();

2.在每一个请求前将这个请求加入这个group,并且在请求结束时将任务移出这个组

dispatch_group_enter(group); //以下代码加入这个组

//进行网络请求1

在请求结束的回调中执行dispatch_group_leave(group);//将这个任务移出group


dispatch_group_enter(group); //以下代码加入这个组

//进行网络请求2

在请求结束的回调中执行dispatch_group_leave(group);//将这个任务移出group


......


3.当所有的网络请求执行完毕,执行界面刷新操作

dispatch_group_notify(group, dispatch_get_main_queue(), ^{

NSLog(@"刷新界面");

 });


4.适用场景

(1)一个页面多个请求,不同模块间的刷新,高度存在变动,需完整获取所有请求结果方可刷新界面

(2)上传多张图片,按选择的顺序将图片有序上传

(3)商城详情页,图片没有固定高度,需下载完成才能获得图片大小,但页面显示需按传输顺序显示而非下载成功顺序等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容