Как записать условие if с использованием значений текста текста (Int) - PullRequest
0 голосов
/ 27 июня 2019

Я получаю даты от сервера (ответ) и те значения, которые я храню в метках, и я хочу записать условие if, используя метки, которые я хочу разрешить следующему Viewcontroller, если количество используемых листов должно быть больше общего уходит и я получаю ошибку

Мое состояние таково, что «общее количество листов» и «использованные листья» будут поступать динамически через сервер, и числа должны быть примерно равны 5 листам (общее количество листов), если мы применим 2-дневные листы, которые будут преобразованы в (общее количество листьев) » 3 "и использованный текст метки листьев будет заменен на 2, как этот формат, он будет работать, и если общее количество листьев равно 0, в этом случае тоже должно появиться сообщение об ошибке

мой код

 if  ((self.totalLeaves.text) > (self.usedLeavesLbl.text)) {
            let alert = UIAlertController(title: "Alert", message: "You Dont have leaves to Apply", preferredStyle: .alert)
            alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
                switch action.style{
                case .default:
                    print("Please Enter Details")

                case .cancel:
                    print("cancel")

                case .destructive:
                    print("destructive")
                }}))
            self.present(alert, animated: true, completion: nil)
        }
     else {
        // Fallback on earlier versions
        let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "ApplyLeavesViewController") as! ApplyLeavesViewController
        self.navigationController?.pushViewController(secondViewController, animated: true)
    }

моя ошибка - ошибка компиляции. Невозможно преобразовать значение типа 'String?' с ожидаемым типом аргумента Создайте UIContentSizeCategory из развернутого значения String

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Сверьтесь с ответом ниже!

    guard let totalLeaves = self.totalLeaves.text,
        let usedLeaves = self.usedLeavesLbl.text else {
            //totalLeaves or usedLeavesLbl is nil
            return
    }

    guard let intTotalLeaves = Int(totalLeaves),
        let intUsedLeaves = Int(usedLeaves) else {
            //totalLeaves or usedLeaves is not contains integer values
            return
    }

    if (intTotalLeaves == 0) || (intTotalLeaves > intUsedLeaves) {
        //Display your error message here
    } else {
        //redirect to another view controller
    }
1 голос
/ 27 июня 2019

Просто сравните, преобразовав строку в int

 if  (Int(self.totalLeaves.text) == 0 || (Int(self.totalLeaves.text) > Int(self.usedLeavesLbl.text))) {
    ...
    ...
}
...