Aguarde a conclusão de todas as operações na fila antes de executar a tarefa

Eu tenho uma subclasse de Operação e fila de Operação com maxConcurrentOperationCount = 1.

Isso executa minhas operações em uma ordem seqüencial que eu adiciono, o que é bom, mas agora preciso aguardar até que todas as operações sejam concluídas antes de executar outro processo.

Eu estava tentando usar o grupo de notificações, mas como isso é executado em um loop for assim que as operações são adicionadas à fila, o grupo de notificações é acionado. Como espero que todas as operações saiam da fila antes de executar outro processo?

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
}

questionAnswers(5)

yourAnswerToTheQuestion