Swift: 无法将类型 'Int?' 的值转换为指定类型 'UInt32'

Swift: Cannot convert value of type 'Int?' to specified type 'UInt32'

我正在尝试将数组计数分配给 UInt32。我收到错误 "Cannot convert value of type 'Int?' to specified type 'UInt32'"。数组计数是 Int 类型,但错误显示 "Int?",这看起来像一个可选的 Int。我不知道它还有什么意思。

let randColorCount:UInt32 = slider?.randUIColors.count

我也试过:

let randColorCount:UInt32 = UInt32(slider?.randUIColors.count)

但是我收到错误 "Cannot invoke initializer for type 'UInt32' with an argument list of type '(Int?)'"。

由于使用了可选链接,

slider?.randUIColors.count 结果为 Int?

一个简单的解决方案是将它与 nil 合并运算符 ?? 结合起来以提供默认值,因为 slidernil.

let randColorCount = UInt32(slider?.randUIColors.count ?? 0)