这在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
}
最佳答案
诀窍是使用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进行类型转换,则可以正常工作
关于ios - 在iPhone 5S的两个 float 之间生成随机 float ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24562516/