iOS多个网络请求问题
// 创建组 [MBProgressHUD showMessage:@"加载中..."];
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 创建信号量dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
NSString *strurl=[HSTools Joint:URL_GUBRI];
NSMutableDictionary *parameters=[NSMutableDictionary dictionary];
parameters[@"region_id"]=self.region_id;
[JSCHttpTool GET:strurl parameters:parameters success:^(id responseObject) {
NSLog(@"网络一请求成功");
if ([responseObject[@"code"] integerValue] == 1){
[self.unitArray removeAllObjects];
for (NSDictionary *unitsdict in responseObject[@"units"]) {
UnitModel *model=[[UnitModel alloc] init];
model.address=unitsdict[@"address"];
model.contact_number=unitsdict[@"contact_number"];
[self.unitArray addObject:model];
}
// 如果请求成功,发送信号量dispatch_semaphore_signal(semaphore);
}
} failure:^(NSError *error) {
NSLog(@"网络一请求失败");
[MBProgressHUD hideHUD];
//dispatch_semaphore_signal(semaphore);
}];
// 在网络请求任务成功之前,信号量等待中dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
});
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 创建信号量dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
NSString *strurl=[HSTools Joint:URL_GUBRI];
NSMutableDictionary *parameters=[NSMutableDictionary dictionary];
parameters[@"region_id"]=self.region_id;
【iOS多个网络请求问题】[JSCHttpTool GET:strurl parameters:parameters success:^(id responseObject) {
NSLog(@"网络二请求成功");
if ([responseObject[@"code"] integerValue] == 1){
[self.otherunitArray removeAllObjects];
for (NSDictionary *unitsdict in responseObject[@"units"]) {
UnitModel *model=[[UnitModel alloc] init];
model.address=unitsdict[@"address"];
model.contact_number=unitsdict[@"contact_number"];
[self.otherunitArray addObject:model];
}
// 如果请求成功,发送信号量dispatch_semaphore_signal(semaphore);
}
} failure:^(NSError *error) {
NSLog(@"网络二请求失败");
[MBProgressHUD hideHUD];
// dispatch_semaphore_signal(semaphore);
}];
// 在网络请求任务成功之前,信号量等待中dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
});
dispatch_group_notify(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUD];
NSLog(@"完成了网络请求,并且都成功。");
NSLog(@"self.unitArray.count--%lu",(unsigned long)self.unitArray.count);
NSLog(@"self.otherunitArray.count--%lu",(unsigned long)self.otherunitArray.count);
});
//也可以加判断语句//if (判断语句) {//// 返回主线程进行界面上的修改//dispatch_async(dispatch_get_main_queue(), ^{//更新ui//});
//}else{//dispatch_async(dispatch_get_main_queue(), ^{//更新ui//});
//}});
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 猎杀IP
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 自媒体形势分析
- 数学大作战
- 2018.03.18
- 星期天的下午茶(一)
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会