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

时间:2015-04-16 12:34:46

标签: swift random

所以我想在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
}

但是当我测试应用程序,并在textBox中输入5时,numberLabel.text就像192819371 ..它非常高。

4 个答案:

答案 0 :(得分:2)

你走了:

@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
    }

我还补充说,如果文本框为空,则只返回,如果randomNumber为0,则为1。

答案 1 :(得分:0)

请勿使用随机(),使用arc4random()arc4random_uniform()random()需要播种,并在每次播种后返回相同种子的相同序列。

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

arc4random()不需要播种并返回加密质量随机数 当需要约束范围而不是模数运算arc4random_uniform()以消除模偏差时,请使用%

请参阅:ARC4RANDOM(3)

答案 2 :(得分:0)

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

var i = Int(arc4random_uniform(10))

答案 3 :(得分:-1)

可能你应该试试let randomNumber = random() % MaxNumber 代替 let randomNumber = random(); MaxNumber

相关问题