存储到“UInt”中时整数文字溢出
Posted
技术标签:
【中文标题】存储到“UInt”中时整数文字溢出【英文标题】:Integer literal overflows when stored into 'UInt' 【发布时间】:2015-04-23 06:33:10 【问题描述】:将 xCode 更新到 6.3 和/或 Swift 1.2 并突然收到此错误
整数字面量在存储到 'UInt'* 时溢出
这是我的代码:
mybuttonOutLet.setTitleColor(UIColorFromRGB(0x100114151), forState: UIControlState.Normal)
这是我的 UIColorFromRGB() 方法
func UIColorFromRGB(rgbValue: UInt) -> UIColor
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
【问题讨论】:
太奇怪了,我试过你的代码,它工作正常,你有没有尝试清理项目和/或删除派生数据? 问题已经在下面解释过了,但是你期望的结果是什么颜色? s23.postimg.org/ecaroi4mf/image.png图片中的白色 我认为您使用十进制 RBG 值和连接整数并将它们用作十六进制文字是错误的。该颜色的 Hex RBG 数字类似于0x6D79DA
。
@QadirHussain White 是 0xFFFFFF
。你可以使用UIColor.whiteColor()
。
【参考方案1】:
0x100114151
。好的,这是九个十六进制数字。假设:UInt
在您的平台上是 32 位。这可以计算出八个十六进制数字。
换句话说,您正在为一个只能保存 32 位的变量分配一个 >32 位的值。
【讨论】:
以上是关于存储到“UInt”中时整数文字溢出的主要内容,如果未能解决你的问题,请参考以下文章
整数文字 '115000159351' 在存储到 'Int' 时溢出,但在一个项目中工作正常,但在另一个项目中工作正常 - Swift
为什么在将大于i32的数字存储到变量中时,我没有得到文字超出范围错误?