с Swift это просто реализовать:
я есть подкласс операций и очередь операций с maxConcurrentOperationCount = 1.
Это выполняет мои операции в последовательном порядке, что я добавляю их, что хорошо, но теперь мне нужно дождаться завершения всех операций, прежде чем запускать другой процесс.
я пытался использовать группу уведомлений, но поскольку она запускается в цикле for, как только операции добавляются в очередь, группа уведомлений запускается. Как мне дождаться, когда все операции покинут очередь, прежде чем запускать другой процесс?
for (index, _) in self.packArray.enumerated() {
myGroup.enter()
let myArrayOperation = ArrayOperation(collection: self.outerCollectionView, id: self.packArray[index].id, count: index)
myArrayOperation.name = self.packArray[index].id
downloadQueue.addOperation(myArrayOperation)
myGroup.leave()
}
myGroup.notify(queue: .main) {
// do stuff here
}