2017-10-14 66 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