На всякий случай совет, который избавит тебя от часового ожидания в чатиках и прочих проблем. Спрашивай на SO, пользуйся Гуглом, учи английский.
У меня так же как в статье что вы скинули. Я до этого гуглил много и пробовал все варианты. Возможно моя проблема в том, что у меня в блоке не функция, а просто кусок кода
У меня так же как в статье что вы скинули. Я до этого гуглил много и пробовал все варианты. Возможно моя проблема в том, что у меня в блоке не функция, а просто кусок кода
У тебя getPartyBy метод работает асинхронно - то есть его completion блок вызывается не в момент исполнения for each а когда-то в будущем.
Для решения проблемы тебе правильно сказали - один из способов использовать dispatch Group.
Вот ток смысл группы в данном случае в том, чтобы дождаться результата выполнения всех операций for each. Операция начинается в момент вызова функции getPartyBy. То есть enter надо сделать до вызова функции внутри for each. А вот leave происходит в момент когда функция выдаёт результаты. Самое простое написать внутри getPartyBy комплешион блока в самом начале так: defer { dg.leave() }
Для понимания происходящего напиши кучу принт но которые бы печатали ещё время. И самое важное не то, что внутри печатает, а когда это будет происходить. Можно даже просто буквы разные выводить: A, B, C и т.д.