Junior — Middle
Kas teil on praktilisi kogemusi Swift Concurrency kasutamisel projektides?
sobes.tech AI
Vastus AI-lt
Jā, Swift Concurrency ļauj rakstīt asinhrono kodu lasāmāku un drošāku, izmantojot async/await, uzdevumus (Task) un aktierus (Actors), lai pārvaldītu stāvokli un konkurējošo piekļuvi.
Piemērs, kā izmantot async/await datu ielādei:
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("Lietotāja vārds: \(user.name)")
} catch {
print("Kļūda, ielādējot lietotāju: \(error)")
}
}
Tāpat tiek izmantoti aktieri, lai aizsargātu datus no sacensību apstākļiem paralēlas piekļuves laikā.