需求很简单,用AFN多个请求同时进行,所有请求完成后处理数据源,直接上代码,(JJNetworkTool封装的AFN网络请求工具)
dispatch_group_enter(group);和 dispatch_group_leave(group);要配对使用
所有请求完成后通知 dispatch_group_notify
#pragma mark - 多个请求
- (void)requestData {
[SVProgressHUD showWithStatus:@"请稍等..."];
dispatch_group_t group = dispatch_group_create();
dispatch_group_enter(group);
// 请求一
[JJNetworkTool POST:kGiftList parameters:nil success:^(id _Nonnull result) {
// 处理请求成功
dispatch_group_leave(group);
} failure:^(id _Nonnull result) {
// 处理请求失败
dispatch_group_leave(group);
} showProgressHUD:NO];
// 请求二,这里可能有多个请求,原理都一样
for (ShoppingCartModel *model in self.newspapers) {
if ([model.giftCount intValue] > 0) { // 有赠品
dispatch_group_enter(group);
NSDictionary *parameters = @{@"waresId" : model.waresId};
[JJNetworkTool POST:kGiftListByWaresId parameters:parameters success:^(id _Nonnull result) {
dispatch_group_leave(group);
} failure:^(id _Nonnull result) {
dispatch_group_leave(group);
} showProgressHUD:NO];
}
}
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
// 所有请求完成后操作
});
}
4134

被折叠的 条评论
为什么被折叠?



