我对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%确定所有来电都已结束。有帮助吗?
答案 0 :(得分:1)
我建议使用调度组:
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
}
}
每个设备立即进入该组,但在收到响应之前不会离开该组。在所有对象都离开组之前,不会调用最后的通知块。