如何知道多次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 } }
每个设备立即进入组,但不会离开组直到收到响应。 直到所有对象都离开组后,才会调用最后的通知块。