Swift - 如果用户从1进入100,则显示随机消息

问题描述 投票:0回答:2

我有一组随机消息,我想使用标签显示其中一条消息作为输出,并且仅当用户输入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
    }
}
swift random type-conversion
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
    }
}

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


0
投票

也许您可以查看文本是否大于或等于1且小于或等于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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.