2017-10-14 9 views
0

2つの非同期要求が完了したら、どうすればいいですか?2つの非同期リクエストが完了したら、どうすればいいですか?

非同期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

関連する問題