iOS应用程序中带有GCD的CompletionHandler的多个CalculationDirections

iOS应用程序中带有GCD的CompletionHandler的多个CalculationDirections,ios,iphone,mkmapview,grand-central-dispatch,Ios,Iphone,Mkmapview,Grand Central Dispatch,我需要对MKDirections(10)执行多个请求,并且我想让我的iOS7应用程序运行得更快。 在使用CompletionHandler执行10次CalculateDirections后,我想更新用户界面。 我尝试使用GCD进行异步调用 我的问题是,对于GCD,我不知道如何在更新用户界面之前等待所有CalculateDirections WithCompletionHandler的结束 这是我的代码: dispatch_group_t taskGroup = dispatch_group_c

我需要对
MKDirections
(10)执行多个请求,并且我想让我的
iOS7
应用程序运行得更快。 在使用CompletionHandler执行10次CalculateDirections后,我想更新用户界面。 我尝试使用
GCD
进行异步调用

我的问题是,对于
GCD
,我不知道如何在更新用户界面之前等待所有
CalculateDirections WithCompletionHandler
的结束

这是我的代码:

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 */

});
问题在于,UI在所有
CompletionHandler的CalculationDirections结束之前更新

为什么?? 我的代码中的问题是什么


谢谢您的帮助。

您可以参考该链接。请您向我解释一下好吗?我不明白。在一个简单的层面上,你可以保留一个int引用来表示收到的更新数量,然后在更新数量达到10时触发你的更新方法?请你给我一个例子好吗?