检查文本框中的Int的更好方法

时间:2016-01-21 00:52:26

标签: ios swift

我正在学习Xcode并使用文本框(txt框)创建一个非常简单的程序,其中用户输入一个值,一个执行计算的按钮(btnCalc)和一个显示calc&#39的标签(lblcalcdnumber) ; d号。我已经选择将数字键盘显示为下拉键盘,但我想检查以确保如果他们输入的数字不是一个没有任何反应的数字。我的代码有效,但我觉得应该有一个更清洁的解决方案。我希望他们只在教科书中输入整数。

    // Mark: Actions
@IBAction func btnCalc(sender: UIButton) {

        // let txtbox text beome int
    let number1 = Int(txtBox.text!)
        // let possibleInt convert mystring to int to check for nil, txtbox becomes OPTIONAL
    let possibleInt = Int(txtBox.text!)
    let number = 25

    if possibleInt != nil {
        let combinednumber = "\(Int(number1!) * number)"
        lblCalcedNumber.text = combinednumber
    }
    else {
        txtBox.text = ""
        txtBox.placeholder = "Please Enter a Valid Number"

    }

}

2 个答案:

答案 0 :(得分:0)

您的变量'number1'和'possibleInt'具有相同的值,因此您只需要其中一个代码用于此部分代码。由于“数字”仅用于一次,因此最好使用值本身而不是为其创建变量,但是,如果您在其他地方使用它,请将其保存为变量,这样您只需要在一个位置更改代码。如果您没有在if语句中使用possibleInt / number1值,那么通过if Int(txtBox.text!) != nil可以提高效率。试试这个:

    // Mark: Actions
@IBAction func btnCalc(sender: UIButton) {

    let possibleInt = Int(txtBox.text!)

    if possibleInt != nil {
        let combinednumber = "\(possibleInt * 25)"
        lblCalcedNumber.text = combinednumber
    }
    else {
        txtBox.text = ""
        txtBox.placeholder = "Please Enter a Valid Number"
    }
}

答案 1 :(得分:0)

您可以使用if和let一起创建可选项。如果值不是nil,它将转换为possibleInt,否则,它将被评估为false。

@IBAction func btnCalc(sender: UIButton) {

    if let possibleInt = Int(txtBox.text!) {
        let combinednumber = "\(possibleInt * 25)"
        lblCalcedNumber.text = combinednumber
    }
    else {
        txtBox.text = ""
        txtBox.placeholder = "Please Enter a Valid Number"
    }
}