2017-10-14 64 views
0

当两个异步请求完成时,我该怎么做?当两个异步请求完成时,我该怎么做?

执行异步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 
+0

搜索“dispatch_group”或“completion handler”。 – shallowThought

回答

1

我的建议是使用dispatch_group_t

dispatch_group_t:一般用于呼叫/执行同步或异步方法/块的组,它会通知你所有的方法/块执行完成后。

有关如何使用的更多信息,您可以阅读本Q/A。

Waiting until two async blocks are executed before starting another block

+0

但在另一种方法中的异步请求。我不知道如何使用dispatch_group_t来做到这一点。 –

+0

这是我添加了2个链接,以便您可以阅读并将其添加到您的应用程序中 – iPatel