gpt4 book ai didi

swift - dispatch_async 并快速从云端下载图像

转载 作者:行者123 更新时间:2023-11-30 13:02:15 27 4
gpt4 key购买 nike

我正在尝试从 Firebase 下载一些带有图像的帖子并将其显示在我的表格 View 中。在下面的代码中,我注意到 tableview 仅在从 preLoadImage 函数调用下载每个图像后才加载。我在另一个dispatch_async 调用中调用整个loadDataFromFirebase() 调用。我在这里做错了什么? preLoadImage 函数不应该在后台队列中运行并且 tableview 立即加载吗?

现在我从日志中看到了这一点,所以我可以看出所有 1+ MB 的图像都首先被下载,然后加载表格 View 。谢谢下载图片下载图片下载图片下载图片下载图片下载图片下载图片下载图片下载图片下载图片在表格 View 中

// loadDataFromFirebase is being called from another dispatch_async call
func loadDataFromFirebase() {

print("Global: Loading data from Firebase")
// code to retrieve data.

self.globalPost.insert(userPost, atIndex: 0)
//helps imageloading -- this is the one that causes the delay
self.preLoadImage(userPost.userImage)
print ("Obtained DATA in loadDataFromFirebase")


}




// image loading - this is called in a background queue but until the download here doesn't finish my tableview does not load.

func preLoadImage(image: String) {
if (image != "") {
dispatch_async(dispatch_get_main_queue(), {
UIImage.cachedImageWithURL(image)
print ("Downlading image")

})


}

}

最佳答案

在 preLoadImage() 中使用它修复了它。这看起来正确吗?

if (image != "") {
dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) {
UIImage.cachedImageWithURL(image)
print ("Downlading image")
}

关于swift - dispatch_async 并快速从云端下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com