Junior — Middle
Tem experiência prática na utilização do Swift Concurrency em projetos?
sobes.tech IA
Resposta da IA
Sim, o Swift Concurrency permite escrever código assíncrono de forma mais legível e segura, usando async/await, tarefas (Task) e atores (Actors) para gerir o estado e o acesso concorrente.
Exemplo de uso de async/await para carregar dados:
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 do utilizador: \(user.name)")
} catch {
print("Erro ao carregar o utilizador: \(error)")
}
}
Também se usam atores para proteger os dados contra condições de corrida durante o acesso paralelo.