Ich bin ein completionhandler innerhalb einer für in Schleife läuft, also ja ein Asynchron-Betrieb in einer Schleife ...completionhandler in für in Schleife
Das ist, warum ich DispatchGroups()
enthalten:
for fileName in fileNames {
group.enter()
let url = URL(fileURLWithPath: "\(self.documentsUrl.path)/\(fileName)")
let ref = storage.reference().child("pathTo/\(fileName)")
let _ = ref.putFile(from: url, metadata: nil) { metadata, error in
print("completed")
if let error = error {
print("error")
} else {
print("success")
}
self.removeFile()
group.leave()
}
}
group.notify(queue: .main, execute: {
print("finished")
})
Nun, die Dateipfad existiert, aber ich bekomme keine Drucke in der Konsole, aber ich muss benachrichtigt werden, nachdem jeder asynchrone Vorgang beendet ist. Könnte mir jemand dabei helfen?
Was passiert, wenn Sie alle Ihre für Code in DispatchQueue.main.async {} -Methode statt group.enter eingeben? –
Haltepunkt setzen und sehen, was gedruckt wird. BTW "abgeschlossen" wird gedruckt oder nicht? –
hey, ich habe DispatchQueue.main.async {} und es gibt immer noch kein Drucken in der Konsole..könnte mir jemand sagen, wie man den Callback funktioniert, damit ich auf erfolgreiche/Fehlerereignisse reagieren kann? –