0 和文本框文本之间的随机数

Random number between 0 and textbox text

所以我想生成一个0到numberTextBox.text之间的随机数。

假设文本框文本是5,那么我想生成一个0到5之间的随机数。

我现在有:

@IBAction func nextButton(sender: AnyObject) {
let maxInteger = MacNumber.toInt()!
let randomNumber = arc4random_uniform(UInt32(maxNumber));
let mxNumber = numberTextBox.text

var textString = String(randomNumber)
numberLabel.text = textString
}

但是当我测试应用程序并在文本框中键入 5 时,numberLabel.text 类似于 192819371..它非常高。

也许你应该试试 let randomNumber = random() % MaxNumber 代替 let randomNumber = random(); MaxNumber ?

不要使用random(),使用arc4random()arc4random_uniform()random() 需要播种并且将 return 每次播种后相同种子的相同序列。

let maxInteger = MaxNumber.toInt()!
let randomNumber = arc4random_uniform(UInt32(maxNumber));

arc4random() 不需要播种和 returns 加密质量随机数。
当需要约束范围时使用arc4random_uniform()而不是模运算%来消除模偏差。

参见:ARC4RANDOM(3)

如果要在Swift中生成随机数,请使用arc4random_uniform()函数。以下代码片段生成一个从 0 到 9 的数字:

var i = Int(arc4random_uniform(10))

给你:

@IBAction func nextButton(sender: AnyObject) {
        if numberTextbox.text == ""{
            return
        }
            var number:Int = 1 + numberTextbox.text.toInt()!
            var randomNumber = random() % number

        if randomNumber == 0{
            randomNumber = 1
        }

        var textString = String(randomNumber)
            numberLabel.text = textString
    }

我还补充说,如果文本框是空的,它只是returns,如果随机数是0,它会变成1。