在此感谢您的帮助, 我有两个API调用,两者都是并行的,任何一个调用都可能首先成功(我不想按顺序调用)。 在两个调用成功后,我必须停止我的活动指示器并重新加载我的tableView, 这是我的代码,但我不知道这是否是正确的方法以及如何重新加载我的tableView和停止我的活动指示器。
func downloadDetails(){
let operationQueue: OperationQueue = OperationQueue()
let operation1 = BlockOperation() {
WebServiceManager.getAData(format:A, withCompletion: {(data: Any? , error: Error?) -> Void in
if let success = data {
DispatchQueue.main.async {
(success code)
}
}
})
let operation2 = BlockOperation() {
webServiceManager.getBData(format: B, withCompletion: {(data: Any? , error: Error?) -> Void in
if let success = data {
DispatchQueue.main.async {
(success code)
}
}
})
}
operationQueue.addOperation(operation2)
}
operationQueue.addOperation(operation1)
}
downloadDetails() "calling function"
DispatchGroup enter()
和leave()
但是没有任何变化。这些API需要等待另一个API完成,它们不是并发的。 - Farras Doko