Я пытаюсь добавить UILabel точно так же, как у меня уже есть, но продолжаю получать эту ошибку - PullRequest
0 голосов
/ 28 мая 2020
• 1000 Я просто хочу, чтобы он также отображал сумму чаевых. Я скопировал это точно для другого UILabel.

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var PriceTxt: UITextField!
    @IBOutlet weak var Tip: UITextField!
    @IBOutlet weak var totalFinal: UILabel!
    @IBOutlet weak var TipAmount: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        totalFinal.text = ""
        TipAmount.text = ""
    }

    @IBAction func Calcualte(_ sender: Any) {
        if  PriceTxt.text! == "" || Tip.text! == "" 
        {
            totalFinal.text = "Input the Numbers"
            TipAmount.text = ""
        }

        else {
        let price = Double(PriceTxt.text!)!
        let tipPer = Double(Tip.text!)!
        let TipMult =  price * (tipPer/100)
        let TipFinal = Double((round(100*TipMult)/100) + price)
        totalFinal.text = "$\(TipFinal)"
        TipAmount.text = "$\(TipMult)"
    }

}
}

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Это покажет вам проблему в вашем коде .. всегда старайтесь избегать принудительного преобразования

class ViewController: UIViewController {

    @IBOutlet weak var PriceTxt: UITextField!
    @IBOutlet weak var Tip: UITextField!
    @IBOutlet weak var totalFinal: UILabel!
    @IBOutlet weak var TipAmount: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        totalFinal.text = ""
        TipAmount.text = ""
    }

    @IBAction func Calcualte(_ sender: Any) {
        if let getPrice = PriceTxt.text , let getTip = Tip.text
        {
            if getPrice.isEmpty || getTip.isEmpty {
                totalFinal.text = "Input the Numbers"
                TipAmount.text = ""
            }
            else {

                let price = Double(getPrice)!
                let tipPer = Double(getTip)!
                let TipMult =  price * (tipPer/100)
                let TipFinal = Double((round(100*TipMult)/100) + price)
                totalFinal.text = "$\(TipFinal)"
                TipAmount.text = "$\(TipMult)"
            }
        } else {
            print("either PriceTxt or Tip is nil")
        }
    }
}
0 голосов
/ 28 мая 2020

Попробуйте использовать ? вместо !

! принудительное развертывание и выдает фатальную ошибку, если нет значения (nil). ? разворачивается, только если присутствует значение.

Кроме того, зачем вообще разворачивать текст здесь?

Используйте PriceTxt.text == "" || Tip.text == "" без ! или ?.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...