Sobes.tech
Junior — Middle

Hai esperienza pratica nell'uso di Swift Concurrency nei progetti?

sobes.tech AI

Risposta dell'AI

Sì, Swift Concurrency consente di scrivere codice asincrono in modo più leggibile e sicuro, utilizzando async/await, task (Task) e attori (Actors) per gestire lo stato e l'accesso concorrente.

Esempio di utilizzo di async/await per caricare dati:

func fetchUserData() async throws -> User {
    let url = URL(string: "https://api.example.com/user")!
    let (data, _) = try await URLSession.shared.data(from: url)
    let user = try JSONDecoder().decode(User.self, from: data)
    return user
}

Task {
    do {
        let user = try await fetchUserData()
        print("Nome utente: \(user.name)")
    } catch {
        print("Errore nel caricamento dell'utente: \(error)")
    }
}

Vengono inoltre utilizzati gli attori per proteggere i dati da condizioni di gara durante l'accesso parallelo.