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)商城详情页,图片没有固定高度,需下载完成才能获得图片大小,但页面显示需按传输顺序显示而非下载成功顺序等。
网友评论