Swift 为什么会出现错误:无法转换类型为';[UIImage?]和#x27;到预期的参数类型';[UIImage]';?

Swift 为什么会出现错误:无法转换类型为';[UIImage?]和#x27;到预期的参数类型';[UIImage]';?,swift,uiimage,optional,Swift,Uiimage,Optional,我已经声明了一个公共变量:var-ImagesOnClick:[UIImage?]=[] 然后我用 Image.resolve(images: images, completion: { resolvedImages in ImagesOnClick = resolvedImages topVC.present(vc, animated: true, completion: nil) }) 但是,当我执行此操作以显示图像时:setupImage

我已经声明了一个公共变量:
var-ImagesOnClick:[UIImage?]=[]
然后我用

Image.resolve(images: images, completion: {  resolvedImages in
        ImagesOnClick = resolvedImages
        topVC.present(vc, animated: true, completion: nil)
        })
但是,当我执行此操作以显示图像时:
setupImageViewer(图像:ImagesOnClick)
会出现以下错误:

无法将“[UIImage?]”类型的值转换为预期的参数类型“[UIImage]”

如果我将变量
imageson从
[UIImage?]
更改为
[UIImage]
,我会得到错误:


无法在
ImagesOnClick=resolvedImages
行中将类型“[UIImage?”]”的值分配给类型“[UIImage]”
。我做错了什么?

为什么要声明它
[UIImage?]
而不是
[UIImage]
?你真的需要数组中不是图像的占位符对象吗?如果你看一下我问题的结尾,我会说如果我声明它会发生什么,你说怎么做?对不起,我不明白那部分。因此,您可能需要在resolvedImages{if let img=img{ImagesOnClick.append(img)}}
中为img指定
,而不是简单的赋值。