Junior — Middle
Van gyakorlati tapasztalata a Swift Concurrency használatában projektekben?
sobes.tech MI
Válasz az MI-től
Igen, a Swift Concurrency lehetővé teszi az aszinkron kód olvashatóbb és biztonságosabb írását az async/await, feladatok (Task) és színészek (Actors) használatával az állapot és a párhuzamos hozzáférés kezelésére.
Az async/await használatának példája adatok betöltéséhez:
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("Felhasználó neve: \(user.name)")
} catch {
print("Hiba a felhasználó betöltésekor: \(error)")
}
}
Színészeket is használnak az adatok védelmére a versenyhelyzetek ellen párhuzamos hozzáférés során.