Sobes.tech
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.