Junior — Middle
Πώς μπορεί να διασφαλιστεί η εκτέλεση ενός συγκεκριμένου μπλοκ κώδικα μετά την λήψη απαντήσεων από πολλά HTTP αιτήματα;
sobes.tech AI
Απάντηση από AI
Στο iOS, για να εκτελέσετε ένα μπλοκ κώδικα μετά την ολοκλήρωση πολλαπλών αιτημάτων HTTP, είναι βολικό να χρησιμοποιήσετε το DispatchGroup. Επιτρέπει την παρακολούθηση μιας ομάδας ασύγχρονων εργασιών και την εκτέλεση κώδικα όταν όλες ολοκληρωθούν.
Παράδειγμα σε 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) {
// Αυτό το μπλοκ θα εκτελεστεί μετά την ολοκλήρωση όλων των αιτημάτων
print("Όλα τα αιτήματα ολοκληρώθηκαν")
}
Έτσι, το DispatchGroup βοηθά στην συγχρονισμό πολλών ασύγχρονων λειτουργιών και στην εκτέλεση κώδικα μετά την ολοκλήρωσή τους.