Sobes.tech
Junior — Middle

Czy masz praktyczne doświadczenie w korzystaniu z Swift Concurrency w projektach?

sobes.tech AI

Odpowiedź od AI

Tak, Swift Concurrency pozwala pisać kod asynchroniczny w sposób bardziej czytelny i bezpieczny, korzystając z async/await, zadań (Task) i aktorów (Actors) do zarządzania stanem i dostępem współbieżnym.

Przykład użycia async/await do ładowania danych:

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("Nazwa użytkownika: \(user.name)")
    } catch {
        print("Błąd podczas ładowania użytkownika: \(error)")
    }
}

Aktorzy są również używani do ochrony danych przed warunkami wyścigu podczas równoległego dostępu.