Как я могу загрузить часть данных перед другими в моем JSON? - PullRequest
0 голосов
/ 28 октября 2018

В моем ответе JSON содержится много данных, включая изображения, которые мне нужны, чтобы показать тексты (потому что они загружаются очень быстро), а в фоновом режиме загружаются и появляются изображения, когда они завершаются

Вот мой код для обработкиизображение в моей ячейке в cellForRowAt func

    if let imgeArray = self.myResponse[indexPath.row]["photos"] as? [[String:Any]] {
        if let photoUrl = imgeArray[0]["Url"] as? String {

            if let url = NSURL(string: "https:serverName/Pics/\(photoUrl)"){

                if let data = NSData(contentsOf: url as URL) {

                    cell?.Image.contentMode = .scaleAspectFit
                    cell?.Image.image = UIImage(data: data as Data)
                }
            }
        }

    }

это работает нормально, но требует времени, любая помощь?

1 Ответ

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

Первый вызов DispatchQueue.global (qos: .background) .async после загрузки изображения, затем вызовите DispatchQueue.main.async, затем установите изображение в представлении изображения.

cell?.Image.contentMode = .scaleAspectFit
DispatchQueue.global(qos: .background).async {

    if let url = NSURL(string: "https:serverName/Pics/\(photoUrl)"){

        if let data = NSData(contentsOf: url as URL) {

            DispatchQueue.main.async {
                cell?.Image.image = UIImage(data: data as Data)
            }

        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...