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指定,而不是简单的赋值。