在 swift3 中实现屏障
Posted
技术标签:
【中文标题】在 swift3 中实现屏障【英文标题】:Implement barrier in swift3 【发布时间】:2017-04-17 23:09:43 【问题描述】:我正在尝试将多张图片上传到 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()
在所有上传部分完成之前运行。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:也许在 uploadImagesQueue.async 块中,您异步上传了图像(通过使用 uploadTask!?)。然后在提交 uploadTask 时异步块完成。 不要使用 DispatchQueue,只需使用 Firebase 的 uploadTask。
【讨论】:
以上是关于在 swift3 中实现屏障的主要内容,如果未能解决你的问题,请参考以下文章
在 TableView 中实现 CoreData 时遇到问题
在 Swift 3.0 中实现滑动以在没有导航栏的情况下向后导航