Junior — Middle
Kaip įgyvendinti duomenų vienu metu rodymą, gautą iš trijų skirtingų šaltinių ar užklausų, sąsajoje ar programėlėje?
sobes.tech AI
Atsakymas iš AI
Norint vienu metu rodyti duomenis iš trijų skirtingų šaltinių iOS programoje, dažnai naudojamas asinchroninio rezultatų sujungimo požiūris. Pavyzdžiui, galima naudoti DispatchGroup, kad stebėtumėte visų trijų užklausų pabaigą, ir tada atnaujinti vartotojo sąsają:
let group = DispatchGroup()
var data1: DataType1?
var data2: DataType2?
var data3: DataType3?
group.enter()
fetchDataFromSource1 { result in
data1 = result
group.leave()
}
group.enter()
fetchDataFromSource2 { result in
data2 = result
group.leave()
}
group.enter()
fetchDataFromSource3 { result in
data3 = result
group.leave()
}
group.notify(queue: .main) {
// Visų duomenų gavimas, atnaujinti UI
updateUI(data1: data1, data2: data2, data3: data3)
}
Taip pat galima naudoti Combine arba async/await (naujesnėse Swift versijose) patogesniam kelių asinchroninių duomenų srautų valdymui ir jų sujungimui.