Знать, когда итерация по массиву с асинхронным методом закончена - PullRequest
0 голосов
/ 20 октября 2018

Допустим, у меня есть массив строк, и я вызываю асинхронный метод, который возвращает int из него.Я хочу знать, когда у меня есть эти значения int в моем массиве целых чисел.

let rndStrings = ["a", "b", "c"]
var rndInts = [Int]()
rndStrings.forEach { rndString in 
   someAsyncMethod { intResult in
     rndInts.append(intResult)
   }
}

Я хочу подождать, пока rndInts будет иметь все 3 значения

1 Ответ

0 голосов
/ 20 октября 2018

Не ждите .Получить уведомление с DispatchGroup.

let rndStrings = ["a", "b", "c"]
let group = DispatchGroup()
var rndInts = [Int]()
rndStrings.forEach { rndString in 
   group.enter()
   someAsyncMethod { intResult in
     rndInts.append(intResult)
     group.leave()
   }
}
group.notify(queue: DispatchQueue.main) {
   print("finished")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...