两个异步请求完成后如何处理?

时间:2017-10-14 08:51:54

标签: ios objective-c

如果两个异步请求完成,我该怎么做?

执行异步initRequest和异步refreshHeader,它们在我执行requestEnd方法后完成。

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self initRequest];
    [self requestEnd];
}

- (void)initRequest{
    [GBCompanyRequest requestWithSuccess:^(EvaluationAverage *evaluationAverage) {

    } failure:^(NSString *message) {

    }];

    [self refreshHeader];
}

- (void)refreshHeader{
    [GBCompanyEvaluationRequest requestWithSuccess:^(EvaluationAverage *evaluationAverage) {

    } failure:^(NSString *message) {

    }];
}

- (void)requestEnd{
    NSLog(@"How can I do things when two asynchronous requests are finished");
}

@end

1 个答案:

答案 0 :(得分:1)

我的建议是使用dispatch_group_t

dispatch_group_t :通常用于同步或异步方法/块的调用/执行组,它将在完成所有方法/块执行后通知您。

有关如何使用的更多信息,请阅读此问答。

Waiting until two async blocks are executed before starting another block