Swift - 生成0.1到0.6之间的随机整数

时间:2015-05-31 04:17:07

标签: ios swift time int delay

我遇到了Swift尝试生成0.1到0.6之间的随机数的问题

我想在一个简单的游戏中引入微延迟,让它看起来像iPhone在响应之前必须“思考”。

我找到了各种代码片段来生成一个随机数(没有显示如何进行十进制数字)。

我找到了一个可以延迟的代码片段(如果我对其工作的数字进行硬编码)

我尝试使用此代码开始生成随机数,将其除以10,将6转换为0.6 ..

// delay before playing
let lower : UInt32 = 1
let upper : UInt32 = 6
let delayTime = arc4random_uniform(upper - lower) + lower

delayTime = delayTime / 10
let delay = delayTime * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))

dispatch_after(time, dispatch_get_main_queue()) {
    self.aiTurn()
}

Xcode告诉我该行

delayTime = delayTime / 10

无法分配'let'值'delayTime' - 显然我不能将delayTime的值除以10

Xcode还告诉我该行

let delay = delayTime * Double(NSEC_PER_SEC)

二进制运算符*不能应用于'UInt32'和'Double'类型的操作数

我知道我正在混合使用Int,UInt32,Int64和Doubles - 但我不知道如何引导自己 - 任何帮助都非常感激

由于

1 个答案:

答案 0 :(得分:0)

好的,这是工作代码 - 感谢@mireke的帮助

// delay before playing
    var lower : UInt32 = 1
    var upper : UInt32 = 6
    var delayTime = arc4random_uniform(upper - lower) + lower
    var delayTimer = Double(delayTime) / 10
    var delay = delayTimer * Double(NSEC_PER_SEC)
    var time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
    dispatch_after(time, dispatch_get_main_queue()) {
        self.aiTurn()
    }