0

我正在尝试将多个图像上传到 Firebase 存储,并且该应用程序需要在上传任务完成后执行某些操作。我做了一些研究,发现屏障在这种情况下很有用。我按照教程进行操作,但似乎我的代码无法正常工作。我错过了什么?这是代码:

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()在所有上传部分完成之前运行。我怎样才能解决这个问题?

4

1 回答 1

0

也许在 uploadImagesQueue.async 块中,您异步上传了图像(通过使用 uploadTask!?)。然后在提交 uploadTask 时异步块完成。而不是使用 DispatchQueue,只需使用 Firebase 的 uploadTask。

于 2017-04-18T02:29:06.360 回答