2016-01-21 2 views
0

Я изучаю Xcode и создаю очень просто программу с текстовым полем (txt box), в котором пользователь вводит значение, кнопку (btnCalc), которая выполняет вычисление, и label (lblcalcdnumber), который показывает номер calc. Я уже выбрал Number Pad, который будет отображаться как раскрывающаяся клавиатура, но я хочу проверить, чтобы убедиться, что если они вводят что-либо, кроме числа, которое ничего не происходит. У кода есть работы, но я чувствую, что должно быть более чистое решение. Существенно, что я хочу, чтобы они вводили только целые числа в учебнике.Лучший способ проверить Int в текстовом поле

// 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" 

    } 

} 
+0

Вид широкий. Вы не знаете, как узнать, является ли это цифрой? Вам нужны предложения по улучшению интерфейса для проверки? Какие? – matt

+0

Я ищу более простой способ проверки. Я очень новичок и просто чувствовал, что мой код был очень «неуклюжим». cfatt10 уже помог очистить его. –

ответ

0

Вы можете использовать if и let together для создания необязательного. Если значение не равно nil, оно будет передано в возможноеInt, иначе оно будет оцениваться как 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" 
    } 
} 
+0

Что я узнал, так это то, что я был на правильном пути, и я ценю помощь. Я выбрал Will Park, поскольку использует самый чистый вариант. –

0

переменные «number1» и «possibleInt» имеют одинаковое значение, так что вам нужен только один из них для этого участка кода. Поскольку «число» используется только тогда, когда было бы лучше использовать само значение, а не создавать переменную для него, однако, если вы используете его в другом месте, сохраните его как переменную, поэтому вам нужно всего лишь изменить код в одном месте. Если вы не использовали значение valueInt/number1 внутри оператора if, вы могли бы стать еще более эффективным, выполнив 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" 
    } 
} 
+0

Это уже помогает мне многому убирать. Я думал, что мне нужно использовать переменную, чтобы сделать ее опциональной. Когда я использую свой код, я получаю ошибку, строка «let объединенная number =" \ (possibleInt * 25) "не завернута. Вот почему я добавил две разные переменные с тем же значением –

+0

Возможно ли, что вы забыли обратную косую черту ? – cfatt10

Смежные вопросы