如何同步閉包?如何同步閉包?
我有這樣的代碼:??
private func getWeather(parameters: [String : Any], failure: ((String) -> Void)? = nil ,completion: (() -> Void)? = nil) {
for _ in 0...10 {
RequestManager.sharedInstance.request(url: baseURL, parameters: parameters, completion: { (result) in
if JSON.parse(result)["name"].string == nil {
failure?("Something went wrong. Please, try again later")
} else {
let weatherModel: WeatherModel = WeatherModel(json: JSON.parse(result))
}
})
}
completion?()
}
在我的代碼,完成()將調用,而不是在所有的請求都將結束 我需要調用完成()時,所有的請求都將結束。何我能做到嗎?
Research'DispatchGroup'。 – rmaddy
[這裏是一個很好的教程](https://dispatchswift.com/introduction-to-dispatch-group-a5cf9d61ff4f) –
或者看看nsoperation(隊列)和設置依賴關係 – vikingosegundo