Ниже приведен пример функции, в которой я пытаюсь запустить одну основную группу, подождать, затем запустить две другие фоновые задачи в отдельных потоках, подождать, а затем вернуть значение, измененное в общих блоках, показанных ниже.Ниже показано мое предположение о том, как это сделать.Это работает, если я запускаю эти блоки все в одном блоке.Это не удается, когда я разделяю блоки.У кого-нибудь есть пример того, как они выполняют нечто подобное?Заранее спасибо за помощь.
-(NSString *)sampleFunction:(NSString*)inputString
{
__block NSString *returnString;
dispatch_group_t mainGroup = dispatch_group_create();
dispatch_group_t otherGroup = dispatch_group_create();
void (^firstBlock)(void) = ^(void)
{
...
};
void (^secondBlock)(void) = ^(void)
{
...
};
void (^thirdBlock)(void) = ^(void)
{
...
};
dispatch_group_async(oneGroup, dispatch_get_global_queue(0, 0), firstBlock);
dispatch_group_wait(oneGroup, sizeof(int));
dispatch_group_async(otherGroup, dispatch_get_global_queue(0, 0), secondBlock);
dispatch_group_async(otherGroup, dispatch_get_global_queue(0, 0), thirdBlock);
dispatch_group_wait(otherGroup, sizeof(int));
dispatch_release(userGroup);
dispatch_release(otherGroup);
return returnString;
}