[英]Cannot convert value of type '[ArrayImages]' to expected argument type '[UIImage?]'
I pass an array of images to the function,我将一组图像传递给 function,
struct ArrayImages: Hashable {
var asset: PHAsset
var image: UIImage
}
@State var imagePost: [ArrayImages] = []
and then transfer to然后转移到
uploadImages(images: **imagePost**, itemId: save.id) { ( imageLinkArray) in *// <- mistake here
save.imagePost = imageLinkArray
the function itself is such function 本身就是这样
let storage = Storage.storage()
func uploadImages(images: [UIImage?], itemId: String, completion: @escaping (_ imagePost: [String]) -> Void) {
var uploadedImagesCount = 0
var imageLinkArray: [String] = []
var nameSuffix = 0
for image in images {
let fileName = "ItemImages/" + itemId + "/" + "\(nameSuffix)" + ".jpg"
let imageData = image!.jpegData(compressionQuality: 0.8)
saveImageInFirebase(imageData: imageData!, fileName: fileName) { (imagePost) in
if imagePost != nil {
imageLinkArray.append(imagePost!)
uploadedImagesCount += 1
if uploadedImagesCount == images.count {
completion(imageLinkArray)
}
}
}
nameSuffix += 1
}
} }
You need to extract an array of UIImage
s from your imagePost
, that's easily done using map
:您需要从imagePost
中提取UIImage
的数组,这很容易使用map
完成:
uploadImages(images: imagePost.map { $0.image }, itemId: save.id) { ( imageLinkArray) in
// ....
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.