为什么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,你仍然需要展开它,但至少只有一个级别需要展开。