https://www.jianshu.com/p/33151a5bac28 这个GCD说的比较详细
ios GCD使用 多个接口分组逐个上传
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue, ^{
dispatch_group_enter(group);
[HttpTool uploadBluetoothData:self.blueToothFilePaths name:blueToothName success:^(id responseObject) {
NSLog(@"任务一完成");
dispatch_group_leave(group);
} failure:^(NSError *error) {
}];
});
dispatch_group_async(group, queue, ^{
dispatch_group_enter(group);
[HttpTool uploadBluetoothData:self.locationFilePaths name:locationInfoName success:^(id responseObject) {
NSLog(@"任务222完成");
dispatch_group_leave(group);
} failure:^(NSError *error) {
}];
});
dispatch_group_async(group, queue, ^{
if (ss.coverImg) {
dispatch_group_enter(group);
[HttpTool uploadImageData:ss.coverImg success:^(id responseObject) {
NSLog(@"任务333完成");
dispatch_group_leave(group);
} failure:^(NSError *error) {
}];
}
});
//在分组的所有任务完成后触发
dispatch_group_notify(group, queue, ^{
[PublishUploadTool uploadData];
NSLog(@"任务最后完成");
});