Sobes.tech
Junior — Middle

Como implementar a exibição de dados obtidos de três fontes ou consultas diferentes, simultaneamente numa interface ou aplicação?

sobes.tech IA

Resposta da IA

Para exibir dados de três fontes diferentes simultaneamente numa aplicação iOS, muitas vezes utiliza-se uma abordagem de combinação assíncrona de resultados. Por exemplo, pode-se usar DispatchGroup para acompanhar a conclusão de todas as três requisições, e depois atualizar a interface:

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) {
    // Todos os dados foram recebidos, atualizar a UI
    updateUI(data1: data1, data2: data2, data3: data3)
}

Também é possível usar Combine ou async/await (nas versões mais recentes do Swift) para trabalhar de forma mais conveniente com múltiplos fluxos de dados assíncronos e sua combinação.