Ios Firebase下载任务队列Swift
我目前正在从Firebase存储下载图像文件,其中包含Ios Firebase下载任务队列Swift,ios,swift,firebase,uiviewcontroller,firebase-storage,Ios,Swift,Firebase,Uiviewcontroller,Firebase Storage,我目前正在从Firebase存储下载图像文件,其中包含UICollectionView中缩略图的以下代码。当我点击其中一个缩略图时,应用程序会转到另一个UIViewController,然后从Firebase存储下载更多图像。 当前,应用程序等待所有缩略图完成下载,然后在UIViewController中下载下一幅图像。是否可以在UIViewController中增加新图像的优先级,或取消所有其他下载以立即启动新图像 var imageRef = storageRef.child("Thumbn
UICollectionView
中缩略图的以下代码。当我点击其中一个缩略图时,应用程序会转到另一个UIViewController
,然后从Firebase存储下载更多图像。
当前,应用程序等待所有缩略图完成下载,然后在UIViewController
中下载下一幅图像。是否可以在UIViewController
中增加新图像的优先级,或取消所有其他下载以立即启动新图像
var imageRef = storageRef.child("Thumbnails/\(itemID).jpg")
imageRef.getData(maxSize: 10 * 1024 * 1024) { data, error
if let error = error {
// Uh-oh, an error occurred!
print("Error: \(error.localizedDescription)")
} else {
let image = UIImage(data: data!)
self.newsNameArray.append(name)
self.newsImageArray.append(image!)
self.newsBarCollectionView?.reloadData()
}
}
谢谢您可以获得对StorageDownloadTask的引用,如下所示:
var allTasks: [StorageDownloadTask] = []
var imageRef = storageRef.child("Thumbnails/\(itemID).jpg")
let downloadTask = imageRef.getData(maxSize: 10 * 1024 * 1024) { data, error
if let error = error {
// Uh-oh, an error occurred!
print("Error: \(error.localizedDescription)")
} else {
let image = UIImage(data: data!)
self.newsNameArray.append(name)
self.newsImageArray.append(image!)
self.newsBarCollectionView?.reloadData()
}
}
将下载的任务存储在阵列中,并在下载新图像之前取消所有任务:
allTasks.append(downloadTask)
...
for task in allTasks {
task.cancel()
}