Невозможно рассчитать с необязательными переменными - PullRequest
0 голосов
/ 22 мая 2019

У меня есть простое приложение с 2 текстовыми полями. Пользователю просто нужно ввести год обслуживания и зарплату. Мне просто нужно их умножить.Хотел бы вывести в текстовую метку

(1) Я проверил на ноль, и код проходит (2), но я не могу преобразовать значение в Int для умножения (3) отладочной секции, просто умноживInt (UserInputVariable.txt) * любое число (4) и просто печать.Нет вывода на экран отладки

 if let var1 = Int(staffYrOfServiceTextField.text!) {   
      let mult = var1 * 3
      print(mult)                            
 }

Я ожидал вывода на экран отладки

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Согласно вашей постановке проблемы, может быть два пути решения этой проблемы:

1) Если у вас тип клавиатуры textField только числовой, где вы уверены, что ввод будет определенно только целым числом.

if let salary = txtFld_Salary.text, let exp = txtFld_YearOfExperience.text {
            let multi = Int(salary)! * Int(exp)!
            print(multi)
        }

2) Если вы не определили тип клавиатуры и пользователь может ввести строковые значения в них, используйте приведенный ниже код для получения умножения:

        if let salary = txtFld_Salary.text, let exp = txtFld_YearOfExperience.text {
            if let intSalary = Int(salary), let intExp = Int(exp) {
                let multi = intSalary * intExp
                print(multi)
            }
        }

0 голосов
/ 22 мая 2019

Вы никогда не «проверяете», что var1 не равен nil в выходном отладчике.

 if let var1 = Int(staffYrOfServiceTextField.text!) {   
      let mult = var1 * 3
      print(mult)                            
 } else {
    // If reach here, then Int(staffYrOfServiceTextField.text!) is nil.
    print(staffYrOfServiceTextField.text)
    print("staffYrOfServiceTextField text does not conform to int or is nil")
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...