Sobes.tech
Junior — Middle

Wie kann man die Ausführung eines bestimmten Codeblocks sicherstellen, nachdem man Antworten von mehreren HTTP-Anfragen erhalten hat?

sobes.tech KI

Antwort von AI

In iOS, um eine Gruppe von HTTP-Anfragen nach Abschluss mehrerer Anfragen auszuführen, ist es praktisch, DispatchGroup zu verwenden. Es ermöglicht die Überwachung einer Gruppe asynchroner Aufgaben und die Ausführung von Code, wenn alle abgeschlossen sind.

Beispiel in Swift:

let dispatchGroup = DispatchGroup()

var results: [Data] = []

for url in urls {
    dispatchGroup.enter()
    URLSession.shared.dataTask(with: url) { data, response, error in
        if let data = data {
            results.append(data)
        }
        dispatchGroup.leave()
    }.resume()
}

dispatchGroup.notify(queue: .main) {
    // Dieser Block wird nach Abschluss aller Anfragen ausgeführt
    print("Alle Anfragen sind abgeschlossen")
}

Auf diese Weise hilft DispatchGroup, mehrere asynchrone Operationen zu synchronisieren und Code nach deren Abschluss auszuführen.