swift - 如何解决“表达式太复杂无法在合理时间内解决”?
问题描述
这里绝对的菜鸟,在反复试验中跌跌撞撞。尽管在这里搜索了几个小时并尝试了许多不同的想法,但我遇到了一个我无法解决的问题。我收到的错误是(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))
}
}
任何想法或建议将不胜感激。
解决方案
我建议分三个阶段进行:
- 使用
??
两次来安全地展开并将您的值转换为Int
. - 添加您的值以创建
total
. - 使用字符串插值转换
total
为String
.
@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)"
}
推荐阅读
- c - 结构中的指针是否会减慢我的代码速度?
- android - 在 Flutter 中创建 BMI 计算器:在约束中定义 BoxConstraints 但它始终显示“未定义命名参数‘约束’。”
- javascript - if 子句在 nodejs/socket.io 服务器上不起作用
- python - 使用python将CSV转换为字典
- vba - 获取输出屏幕字段的值
- python - 如何使用已放置在树视图中的数据循环设置变量?
- kubernetes - Kubernetes 中的指标服务不起作用
- reactjs - 无法返回经过身份验证的帐户信息(使用 MSAL)
- html - 以秒为单位的格式输入类型时间 (00:00:00)
- javascript - 是使用通用的ticker hook来触发多个渲染还是为每个组件使用一个特定的渲染更好?