您的位置:首页 > 其它

dispatch_group项目中使用

2016-10-12 15:04 260 查看
需求很简单,用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(), ^{

        

        // 所有请求完成后操作

        

    });

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: