【发布时间】:2018-09-01 08:48:46
【问题描述】:
我需要一个完成处理程序或类似的东西,以确保每张图片都已上传,并且下载网址存储在字典中。
func saveImages(images: [UIImage], completion: @escaping ([String : Any], String) -> Void) {
let ref = FirDatabaseReference.courts.reference()
let upload = ref.childByAutoId()
let uploadID = upload.key
// save images
var urlDict = [String : Any]()
DispatchQueue.main.async {
for i in 0..<images.count {
let saveID = "\(uploadID)_\(i)"
let firImage = FIRImage(image: images[i])
firImage.save(uploadID, imageUid: saveID, completion: { (url, error) in
if error == nil {
urlDict["\(i)"] = url
}
})
}
completion(urlDict, uploadID)
}
}
但是,立即使用空的 urlDict 或更好的说法来调用完成,而无需添加任何内容。 我尝试了很多东西,但都没有真正奏效。我不确定在哪里放置 Dispatch.main.asynch() 调用,但我认为需要它。
【问题讨论】:
标签: swift firebase for-loop asynchronous completionhandler