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

标签 swift option-type uint32

我正在尝试将数组计数分配给 UInt32。我收到错误消息“无法转换‘Int’类型的值?”到指定类型“UInt32””。数组计数是 Int 类型,但错误显示“Int?”,这看起来像一个可选的 Int。我不知道它还有什么意思。

let randColorCount:UInt32 = slider?.randUIColors.count

我也试过:

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

但我收到错误“无法使用类型为‘(Int?)’的参数列表为类型‘UInt32’调用初始化程序”。

最佳答案

slider?.randUIColors.count 由于使用了可选链接而导致 Int?

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

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

关于Swift:无法将类型 'Int?' 的值转换为指定类型 'UInt32',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51250779/

相关文章:

C# 将 uint[] 转换为 byte[]

ios - 如何将 UInt32 设置为其最大值

ios - 似乎无法在 Swift 中使用 CGRectIntegral 和 CGRectInset 函数

ios - 无法转换类型为 'LazyFilterBidirectionalCollection>' 的返回表达式

ios - 应用程序处于后台蓝牙模式时如何保存数据?

Scala 围绕更高种类的类型扁平化选项,寻找更惯用的方法

c++ - 在 C++ 中连接 char[] 和 uint32_t

swift - Mac 命令行应用程序上的 CoreBluetooth

ios - 可选链接不适用于可选协议(protocol)要求

Java 可选 isPresent 检查三元表达式