0

我有一组随机消息,我想使用标签将其中一条消息显示为输出,并且仅当用户输入介于 1 到 100 之间时,所以当用户输入介于 1 到 100 之间并按下按钮时,标签应该生成一个那些随机消息。

我的代码:

@IBOutlet weak var outputLabel: UILabel!

@IBOutlet weak var inputTextField: UITextField!


let arrayMessages = ["message 1", "Message 2", "Message 3", "Message 4", "Message 5"]
let numberRange = 1...100



@IBAction func generateButton(_ sender: UIButton) {

    let random = Int(arc4random_uniform(UInt32(arrayMessages.count)))
    let output = arrayMessages[random]

    if (inputTextField.text == numberRange){
        outputLabel.text = output
    }
}
4

2 回答 2

1

您首先必须将输入的文本转换为Int. 然后您需要查看范围是否包含该数字。

@IBAction func generateButton(_ sender: UIButton) {
    if let num = Int(inputTextField.text!), numberRange.contains(num) {
        let random = Int(arc4random_uniform(UInt32(arrayMessages.count)))
        let output = arrayMessages[random]
        outputLabel.text = output
    } else {
        // Not a valid number or the number isn't in range
    }
}

另请注意,除非您确实需要它,否则没有理由获取随机消息。

于 2018-09-12T01:44:04.670 回答
0

也许不是做一个数字范围,你可以看看文本是否大于或等于一且小于或等于 100。

@IBOutlet weak var outputLabel: UILabel!

@IBOutlet weak var inputTextField: UITextField!


let arrayMessages = ["message 1", "Message 2", "Message 3", "Message 4", "Message 5"]

@IBAction func generateButton(_ sender: UIButton) {

    let random = Int(arc4random_uniform(UInt32(arrayMessages.count)))
    let output = arrayMessages[random]


    if (Double(inputTextField.text!) >= 1 && Double(inputTextField.text!) <= 100){
        outputLabel.text = output
    } else {
       // Number is less than 1 or greater than 100
    }
}
于 2018-09-12T01:46:47.120 回答