首页 > 解决方案 > 整数文字“4294967295”在存储到“Int”时溢出

问题描述

当我归档我的项目时,我收到一条错误消息。如何解决?错误在第 2 行。

func random() -> CGFloat{
    return CGFloat(CGFloat(arc4random()) / 0xFFFFFFFF)
}

func random(min: CGFloat, max: CGFloat) -> CGFloat{
    return random() * (max - min) + min
}

错误

标签: swift

解决方案


编译器将其视为整数文字,但对于32 位平台上0xFFFFFFFF的(有符号),该值太大。Int选择 (unsigned)UInt32可以解决问题:

func random() -> CGFloat{
    return CGFloat(arc4random()) / CGFloat(UInt32.max)
}

推荐阅读