无法将 'UIImage??' 类型的值分配给 Swift 5 类型'UIImage?'



为什么swift(Xcode)需要"!!"在使用randomElement()UIImage数组后,它本身给了我一个错误。

的例子:

someView1.image = viewArray.randomElement()   // right here it tells me to put !!

后面加上"!!"最后一切都很好。为什么?

问题是viewArray不是UIImage的数组。它是一个可选UIImage的数组。调用randomElement()本身增加了一种可选性,因为数组本身可能是空的。因此你得到一个可选的包装一个可选的包装一个UIImage。

简单的解决方案:说

viewArray.compactMap {$0}.randomElement()

打开数组中的可选项。现在randomElement产生一个Optional。如果你想要一个UIImage,你仍然需要展开它,但至少只有一个级别需要展开。

相关内容

  • 没有找到相关文章

最新更新