Я согласен с комментарием Роба о том, что вы, вероятно, не захотите этого делать, если вам действительно не нужно, потому что это замедлит процесс сохранения.Если вам НУЖНО привести их в порядок и вы действительно хотите использовать DispatchGroup
для этого, вы можете сделать следующее:
let group = DispatchGroup()
for i in 0 ..< 5 {
group.enter()
asyncTask { // Use your getData function here
print("Done: \(i)")
group.leave()
}
group.wait()
}
Я бы также отметил, что в вашем коде:
if let error = error {
print("An error has occured!")
} else {
print("Data saved \(i)")
myGroup.leave()
}
В случае возникновения ошибки вызов не будет вызван и вы никогда не будете уведомлены о завершении.Вы, вероятно, должны leave
, даже если есть ошибка, чтобы ваша программа не зависала.