首页 > 解决方案 > 如何解决“表达式太复杂无法在合理时间内解决”?

问题描述

这里绝对的菜鸟,在反复试验中跌跌撞撞。尽管在这里搜索了几个小时并尝试了许多不同的想法,但我遇到了一个我无法解决的问题。我收到的错误是(TotalFuelLoad.text行):

表达方式过于复杂,无法在合理时间内解决;考虑将表达式分解为不同的子表达式

代码如下:

import UIKit

class FirstViewController: UIViewController {
    @IBOutlet weak var LeftMainTankQuantity: UITextField!
    @IBOutlet weak var RightMainTankQuantity: UITextField!
    @IBOutlet weak var AuxTankQuantity: UITextField!
    @IBOutlet weak var TailTankQuantity: UITextField!
    @IBOutlet weak var TotalFuelLoad: UILabel!

    @IBAction func TankFuelChanged(_ sender: Any) {
        let LeftMainTankQuantityValue = Int(LeftMainTankQuantity.text!)
        let RightMainTankQuantityValue = Int(RightMainTankQuantity.text!)
        let AuxTankQuantityValue = Int(AuxTankQuantity.text!)
        let TailTankQuantityValue = Int(TailTankQuantity.text!)

        TotalFuelLoad.text = String(describing: (LeftMainTankQuantityValue ?? 0) + (RightMainTankQuantityValue ?? 0) + (AuxTankQuantityValue ?? 0) + (TailTankQuantityValue ?? 0))
    }
}

任何想法或建议将不胜感激。

标签: swift

解决方案


我建议分三个阶段进行:

  1. 使用??两次来安全地展开并将您的值转换为Int.
  2. 添加您的值以创建total.
  3. 使用字符串插值转换totalString.

@IBAction func TankFuelChanged(_ sender: Any) {

    let leftMainTankQuantityValue = Int(LeftMainTankQuantity.text ?? "") ?? 0
    let rightMainTankQuantityValue = Int(RightMainTankQuantity.text ?? "") ?? 0
    let auxTankQuantityValue = Int(AuxTankQuantity.text ?? "") ?? 0
    let tailTankQuantityValue = Int(TailTankQuantity.text ?? "") ?? 0

    let total = leftMainTankQuantityValue + rightMainTankQuantityValue + auxTankQuantityValue + tailTankQuantityValue

    TotalFuelLoad.text = "\(total)"

}

推荐阅读