2016-04-06 3 views
-1

Я строю свое приложение со Свифт, и я использую Alamofire для своих веб-запросов. Мне нужно выполнить 4 запроса одновременно, а затем запустить функцию только при загрузке информации. Как я могу это сделать? Спасибо!Несколько обработчиков завершения запроса async в Swift с Alamofire

+0

Необходимо выполнить 4 запроса в одно и то же время? Или один зависит от другого и нужно запрашивать последовательно? –

+0

в то же время. Я знаю, как это сделать последовательно, спасибо –

+0

Это немного запутанно. Вы действительно нуждаетесь в том, чтобы эти операции выполнялись в тот же самый момент, или они могут быть отложены на миллисекунды. В тот же миг я понятия не имею. Миллисекунды уже происходят с асинхронными функциями. –

ответ

0

Простым способом сделать это было бы иметь переменную, которую вы бы заблокировали (или нет, если это атомная переменная), которую вы увеличивали бы после каждого запроса. Если он увеличится до 4, выполните свою функцию.

+0

Великая центральная диспетчерская служба имеет отличные возможности для этих типов операций, а также –

+0

Мне это удалось, и я использую 'NSTimer()', чтобы проверить, равна ли переменная 4. Могу ли я сделать это без таймера? Спасибо! –

+0

На самом деле я думаю, что нашел именно то, что вам нужно (и о чем говорит Дэн). Проверьте это: http://stackoverflow.com/a/11909880/4021216 –

0

Вы можете использовать dispatch_group_async и dispatch_group_notify. Создать группу запросов с dispatch_group_async и dispatch_group_notify уведомит вас, как только все запросы будут заполнены.

Смежные вопросы