How can an NSOperationQueue wait for two async operations?
ios, nsoperationqueue
Solution
Do you have to use `NSOperation Queue`? Here's how you can do it w/ a dispatch group:
dispatch_group_t group = dispatch_group_create();
dispatch_group_enter(group);
[AsyncReq get:^{
code
dispatch_group_leave(group);
} onError:^(NSError *error) {
code
dispatch_group_leave(group);
}];
dispatch_group_enter(group);
[AsyncReq get:^{
code
dispatch_group_leave(group);
} onError:^(NSError *error) {
code
dispatch_group_leave(group);
}];
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
NSLog(@"Both operations completed!")
});
Problem
How can I make an NSOperationQueue (or anything else) wait for two async network calls with callbacks? The flow needs to look like this ``` Block Begins { Network call with call back/block begins { first network call is done } } Second Block Begins { Network call with call back/block begins { second network call is done } } Only run this block once the NETWORK CALLS are done { blah } ``` Here's what I have so far. ``` NSOperationQueue *queue = [[NSOperationQueue alloc] init]; __block NSString *var; [queue addOperation:[NSBlockOperation blockOperationWithBlock:^{ [AsyncReq get:^{ code } onError:^(NSError *error) { code }]; }]]; [queue addOperation:[NSBlockOperation blockOperationWithBlock:^{ [AsyncReq get:^{ code } onError:^(NSError *error) { code }]; }]]; [queue waitUntilAllOperationsAreFinished]; //do something with both of the responses ```