在iPhone 5S上生成两个浮动之间的随机浮动

时间:2014-07-03 20:09:48

标签: ios swift

这适用于iPhone 5,但不适用于iPhone 5S或iPad Air。

无法找到' +'接受提供的参数

为什么?

func randomFloat(from:Float, to:Float) -> Float { 
    let rand:CGFloat = CGFloat(arc4random() % 1000) / 1000
    return (rand) * (to - from) + from
}

1 个答案:

答案 0 :(得分:3)

诀窍是使用CGFloat而不是Float

func randomFloat(from:CGFloat, to:CGFloat) -> CGFloat {
    let rand:CGFloat = CGFloat(arc4random() % 1000) / 1000
    return (rand) * (to - from) + from
}

您看到的问题是CGFloat根据体系结构别名为不同类型。对于32位ARM(iPhone 4S和5),它在内部是Float,但对于arm64,它实际上是一个Double。如果您只是使用CGFloat代替Float进行类型转换,它将正常工作