我正在尝试将多个图片上传到firebase存储,并且应用程序需要在上传任务完成后执行某些操作。我做了一些研究,我发现屏障在这种情况下很有用。我跟着tutorial,但似乎我的代码工作不正常。我错过了什么?这是代码:
func uploadImages(completion: (()->Void)){
// creating a queue
let uploadImagesQueue = DispatchQueue(label: "upLoadImages", attributes: .concurrent)
for i in 0..<numOfImages{
uploadImagesQueue.async{
// upload each of the images
}
}
uploadImagesQueue.async(flags: .barrier){
completion()
}
}
此代码的问题是completion()
在所有上传部分完成之前运行。我该如何解决这个问题?
答案 0 :(得分:0)
也许在uploadImagesQueue.async块中,您异步上传图像(使用uploadTask!?)。然后在提交uploadTask时完成异步块。 不要使用DispatchQueue,只需使用Firebase的uploadTask。