// 创建队列组,可以使多个网络请求异步执行,执行完之后再进行操作dispatch_group_t group = dispatch_group_create();//创建全局队列dispatch_queue_tqueue = dispatch_get_global_queue(0,0);
dispatch_group_async(group, queue, ^{// 循环上传数据for(inti =0; i
[manager POST:urlStr parameters:dict progress:nilsuccess:^(NSURLSessionDataTask * _Nonnull task,id_Nullable responseObject) {// responseObject 返回的数据// 请求成功发送信号量(+1)dispatch_semaphore_signal(semaphore);
} failure:^(NSURLSessionDataTask * _Nullable task,NSError* _Nonnull error) {NSLog(@"%@",error);// 失败也请求成功发送信号量(+1)dispatch_semaphore_signal(semaphore);
}];//信号量减1,如果>0,则向下执行,否则等待dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
}
});// 当所有队列执行完成之后dispatch_group_notify(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{// 执行下面的判断代码if(state ==self.goodsArray.count) {// 返回主线程进行界面上的修改dispatch_async(dispatch_get_main_queue(), ^{
…….
});
}else{dispatch_async(dispatch_get_main_queue(), ^{
…..
});
}
});