在项目中往往会遇到这种需求:UI 的更新要在2~3个网络请求后才执行
//创建一个队列组
dispatch_group_t group = dispatch_group_create();
//创建一个并行队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// 模拟请求返回的数据
__block NSString *string1;
__block NSString *string2;
__block NSString *string3;
//使用同步函数封装三个任务
dispatch_group_async(group, queue, ^{
// 模拟请求
NSLog(@"请求1---%@", [NSThread currentThread]);
string1 = @"任务1";
});
dispatch_group_async(group, queue, ^{
// 模拟请求
NSLog(@"请求2---%@", [NSThread currentThread]);
string2 = @"任务2";
});
dispatch_group_async(group, queue, ^{
// 模拟请求
NSLog(@"请求3---%@", [NSThread currentThread]);
string3 = @"任务3";
});
// 多个请求都结束了,处理请求数据
dispatch_group_notify(group, queue, ^{
NSLog(@"%@-%@-%@",string1,string2,string3);
});
网友评论