让我们说我有一个字符串数组,我调用了一个异步方法,该方法从中返回一个int值。我想知道我的整数数组中何时有这些整数值。
let rndStrings = ["a", "b", "c"]
var rndInts = [Int]()
rndStrings.forEach { rndString in
someAsyncMethod { intResult in
rndInts.append(intResult)
}
}
我要等到rndInts具有所有3个值
答案 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")
}