在項目中往往會遇到這種需求:UI 的更新要在2~3個網(wǎng)絡(luò)請求后才執(zhí)行
//創(chuàng)建一個隊列組
dispatch_group_t group = dispatch_group_create();
//創(chuàng)建一個并行隊列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// 模擬請求返回的數(shù)據(jù)
__block NSString *string1;
__block NSString *string2;
__block NSString *string3;
//使用同步函數(shù)封裝三個任務(wù)
dispatch_group_async(group, queue, ^{
// 模擬請求
NSLog(@"請求1---%@", [NSThread currentThread]);
string1 = @"任務(wù)1";
});
dispatch_group_async(group, queue, ^{
// 模擬請求
NSLog(@"請求2---%@", [NSThread currentThread]);
string2 = @"任務(wù)2";
});
dispatch_group_async(group, queue, ^{
// 模擬請求
NSLog(@"請求3---%@", [NSThread currentThread]);
string3 = @"任務(wù)3";
});
// 多個請求都結(jié)束了渣触,處理請求數(shù)據(jù)
dispatch_group_notify(group, queue, ^{
NSLog(@"%@-%@-%@",string1,string2,string3);
});