如何知道多次networking通话何时结束,通话完成

我对Swift相当Swift ,这个问题可能真的很愚蠢。 所以请耐心等待。

我有collection想要重置的设备,使用Webservice调用。 这是我的Function现在看起来像(尚未完成)

 func resetDevice(completion: () -> ()) { for device in devices { device.isValid = 0 DeviceManager.instance.updateDevice(device).call { response in print("device reset") } } } 

我不太确定是要叫我完成,还不如100%确定所有的电话已经结束。 任何帮助?

我build议使用派遣组:

 func resetDevice(completion: () -> ()) { let dispatchGroup = DispatchGroup() for device in devices { dispatchGroup.enter() device.isValid = 0 DeviceManager.instance.updateDevice(device).call { response in print("device reset") dispatchGroup.leave() } } dispatchGroup.notify(queue: DispatchQueue.main) { // Some code to execute when all devices have been reset } } 

每个设备立即进入组,但不会离开组直到收到响应。 直到所有对象都离开组后,才会调用最后的通知块。