I need to do multiple request for a MKDirections
(10) and I want to make faster my iOS7
App.
After 10 calculateDirectionsWithCompletionHandler
, I want to update user interface.
I try with async calls with GCD
.
My problem is that with GCD
I don't understand how to wait the end of all calculateDirectionsWithCompletionHandler
before to update user interface.
This is my code:
dispatch_group_t taskGroup = dispatch_group_create();
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_group_async(taskGroup, mainQueue, ^{
[directions1 calculateDirectionsWithCompletionHandler:
^(MKDirectionsResponse *response, NSError *error) {...}];
});
.........
dispatch_group_async(taskGroup, mainQueue, ^{
[directions10 calculateDirectionsWithCompletionHandler:
^(MKDirectionsResponse *response, NSError *error) {...}];
});
/* Update UI */
dispatch_group_notify(taskGroup, mainQueue, ^{
/* Do some processing here and UI Update */
});
The problem is that the UI is updated before of the end of all calculateDirectionsWithCompletionHandler
!
Why? Which is the problem in my code?
Thank you for help.