【发布时间】:2018-10-04 09:25:06
【问题描述】:
我正在做一个电子商务项目,我现在正在设计一个购物篮页面。我创建了 4 个步进器来确定产品的数量。我创建了标签来显示每种产品的成本,并创建了一个标签来显示总成本。
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!
@IBOutlet weak var label4: UILabel!
@IBOutlet weak var label5: UILabel!
@IBAction func GmS1(_ sender: GMStepper) {
label1.text = String(sender.value*1.5)
}
@IBAction func GmS2(_ sender: GMStepper) {
label2.text = String(sender.value*0.89)
}
@IBAction func GmS3(_ sender: GMStepper) {
label3.text = String(sender.value*26)
}
@IBAction func GmS4(_ sender: GMStepper) {
label4.text = String(sender.value*4)
}
func calculateSum() {
label5.text = String([label1, label2, label3, label4].reduce(0,{$0 + (Double($1.text ?? "0") ?? 0)}))
}
calculateSum() 函数正在解决我的问题,但在快速更新后,此代码会出现以下错误:
“编译器无法在合理的时间内对该表达式进行类型检查;请尝试将表达式分解为不同的子表达式。”
有谁知道如何解决这个问题?
【问题讨论】:
-
单独,如
let labels: [UILabel] = [label1, label2, label3, label4]; let summed = .reduce(0,{$0 + (Double($1.text ?? "0") ?? 0)}); label5.text = String(summed)。调试问题更容易。