如何加快图像下载的速度



我有一个循环,取imageUrls数组,并从中制作图像,但它很慢,有没有办法加快速度?

它看起来像这样:

self.urlArray.forEach() { 
    let photoURL = URL(string: $0)
    guard let url = photoURL else {continue}
    let data = try? Data(contentsOf: url)
    guard let dataSafe = data else {continue}
    let finishedImage = UIImage(data: dataSafe)
    self.imagesArray.append(finishedImage)
}

你可以在后台线程中获取数据,然后在主线程中更新UIImageView。

let photoURL = URL(string: $0)
guard let url = photoURL else {continue}
DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated).async{
    //fetch the image data in background
    let data = try? Data(contentsOf: url)
    guard let dataSafe = data else {continue}
    DispatchQueue.main.sync {
        //get back to main thread
        let finishedImage = UIImage(data: dataSafe)
        self.imagesArray.append(finishedImage)
    }
}

最新更新