Swift 整型文字';4294967295';存储到'时溢出;Int';

Swift 整型文字';4294967295';存储到'时溢出;Int';,swift,Swift,当我归档项目时,会收到一条错误消息。如何修复它?错误在第2行 func random() -> CGFloat{ return CGFloat(CGFloat(arc4random()) / 0xFFFFFFFF) } func random(min: CGFloat, max: CGFloat) -> CGFloat{ return random() * (max - min) + min } 编译器将0xFFFFFFFF视为整数文本,但 值对于32位平台上的(

当我归档项目时,会收到一条错误消息。如何修复它?错误在第2行

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

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

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

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

您必须为32位平台构建可能的副本,因为该数字超出了有符号32位整数的范围(32位硬件上的
Int
)。