所以我想在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 ..它非常高。
答案 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
?