最小和最大函数不工作Swift

时间:2016-03-08 05:03:25

标签: ios swift

我正在制作游戏而且我一直试图产生随机动作。这是我的代码。

let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0)))

最小值和最大值无效请求帮助。

2 个答案:

答案 0 :(得分:3)

与.NET Framework或JDK不同,没有一个函数可以使用minmax参数来生成随机数。 :(

如果要生成3到4之间的随机数,则应使用arc4random_uniform函数首先生成0到999之间的数字,然后将该数字除以1000并加3:

let randomNumber = Double(arc4random_uniform(1000))
let actualDuration = CGFloat(randomNumber / 1000 + 3)

让我解释一下这是如何运作的。

randomNumber介于0到999之间吗?现在当你将它除以1000时,它变成一个小于1的数字,即0~0.999。然后将此数字添加到3,结果将变为3到4之间的随机数,这正是您想要的。

如果你想要一个更精确的双倍,你可以生成0到9999之间的数字并除以10000.你知道我的意思!

答案 1 :(得分:0)

@Ethan Marcus

试试这个

let minValue = 3
let maxValue = 4
    let actualDuration = NSTimeInterval(minValue + (random() % (maxValue - minValue)))