知道何时使用异步方法完成数组迭代

时间:2018-10-20 05:14:17

标签: swift

让我们说我有一个字符串数组,我调用了一个异步方法,该方法从中返回一个int值。我想知道我的整数数组中何时有这些整数值。

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

我要等到rndInts具有所有3个值

1 个答案:

答案 0 :(得分:3)

不要等待。通过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")
}