gpt4 book ai didi

swift - 整数文字存储到 'Int' 时溢出

转载 作者:IT王子 更新时间:2023-10-29 05:20:56 26 4
gpt4 key购买 nike

Xcode 提示以下行:

let primary = UInt32(0x8BC34AFF)

出现此错误消息:

Integer literal '2344831743' overflows when stored into 'Int'

我看到它溢出了一个带符号的整数,但我有意使用了 UInt32。我的问题更多是“这怎么可能”而不是“我该如何解决”。

最佳答案

UInt32(0x8BC34AFF) 通过调用初始化程序创建一个 UInt32。您正在调用的 UInt32 初始化器是:

init(_ v: Int)

问题是在 32 位设备(iPhone5 和更早版本)上,Int 类型是 32 位的。因此,您传递给 0x8BC34AFF 的常量会溢出您传递给 UInt32 初始化程序的 Int

在 32 位和 64 位设备上都可以使用的方法是将整数文字转换为以下类型:

let primary = 0x8BC34AFF as UInt32

或者,将变量声明为 UInt32 并仅分配常量:

let primary:UInt32 = 0x8BC34AFF

关于swift - 整数文字存储到 'Int' 时溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com