iOS загружает данные таблицы с вложенным запросом - PullRequest
0 голосов
/ 04 октября 2018

Я работаю с UITableView, который содержит изображение и некоторые ярлыки.Текст загружается с одного сервера, а изображение загружается с другого сервера.Изображение URL зависит от ответа на текстовое значение, но я должен показать его в одной ячейке.Что мне нужно сделать, это объединить эти данные после их загрузки и затем показать их.

Какой может быть правильный подход?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете просто отобразить текстовые данные в первую очередь, а после загрузки изображения вы можете сопоставить это изображение с текстовыми данными, имея некоторый общий идентификатор в ответах и ​​перезагрузить эту конкретную ячейку.Таким образом, пользователь сможет видеть текстовые данные, и через несколько миллисекунд изображения также будут хорошо отображаться.

0 голосов
/ 04 октября 2018

Вы можете объединить ответ на два запроса, используя DispatchGroup:

let group = DispatchGroup()
var text: String?
var image: UIImage?

group.enter()
requestText(completion: { response in
    text = // extract text from response
    group.leave()
})

group.enter()
requestImage(completion: { response in
    image = // extract image from response
    group.leave()
})

group.notify(queue: DispatchQueue.main, execute: {
    let textWithImage = (text, image)
    // show data in table view
})
...