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时触发你的更新方法?请你给我一个例子好吗?