Как умножить userDefault на число? - PullRequest
0 голосов
/ 11 декабря 2019

как я смогу умножить пользовательское значение по умолчанию на число

мое приложение падает, когда я пытаюсь умножить мое пользовательское значение по умолчанию на число в моем FeesVC

Это работает отличнонормально передает промежуточный итог в subtotalLbl (когда он сам по себе), но приложение вылетает, если я пытаюсь умножить его на любое число с UserDefault при попытке вычислить для salesTaxLbl и totalTotalLbl

class FooterCell: UITableViewCell {

    @IBOutlet weak var cartTotal: UILabel!
    @IBOutlet weak var totalInfoBtn: UIButton!

    @IBAction func additionalFeesOnClicked(_ sender: Any) {
        UserDefaults.standard.set(cartTotal.text, forKey: "PASS_DATA")
    }
}

class FeesViewController: UIViewController {

    @IBOutlet weak var subtotalLbl: UILabel!
    @IBOutlet weak var salesTaxLbl: UILabel!
    @IBOutlet weak var overallTotalLbl: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        // passes data into FeesVC Fine
        let subtotal = UserDefaults.standard.object(forKey: "PASS_DATA") 

        // app crashed when trying to multiply the user default by a number
        let tax = Float(subtotal)! * Float(0.0825) 
        let total = Float(subtotal)! + Float(tax) 

        subtotalLbl.text = "\(subtotal!)"
        salesTaxLbl.text = "\(Tax)"
        overallTotalLbl.text = "\(total)"

    }

    @IBAction func returnButton(_ sender: Any) {
        dismiss(animated: true, completion: nil)
        print("Close Taxes and Fees")
    }   
}

1 Ответ

1 голос
/ 11 декабря 2019

Вместо этого вы должны хранить и загружать ваше значение в виде числа с плавающей запятой / двойного числа, например

@IBAction func additionalFeesOnClicked(_ sender: Any) {
    if let value = Float(cartTotal.text) {
        UserDefaults.standard.set(value, forKey: "PASS_DATA")
    }
    //or if you want to store a default value  
    //UserDefaults.standard.set(Float(cartTotal.text) ?? 0, forKey: "PASS_DATA")
}

и

let subtotal = UserDefaults.standard.float(forKey: "PASS_DATA") 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...