Sobes.tech
Junior — Middle

Da li imate praktično iskustvo u korišćenju Swift Concurrency u projektima?

sobes.tech АИ

Одговор од АИ

Da, Swift Concurrency omogućava pisanje asinhronog koda koji je čitljiviji i sigurniji, koristeći async/await, zadatke (Task) i glumce (Actors) za upravljanje stanjem i konkurentnim pristupom.

Primer korišćenja async/await za učitavanje podataka:

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("Ime korisnika: \(user.name)")
    } catch {
        print("Greška pri učitavanju korisnika: \(error)")
    }
}

Takođe, koriste se glumci za zaštitu podataka od trkaćih uslova tokom paralelnog pristupa.