gpt4 book ai didi

ios - 为什么swift更新后会报编译错误?

转载 作者:可可西里 更新时间:2023-11-01 01:56:42 24 4
gpt4 key购买 nike

我正在从事一个电子商务项目,我现在正在设计一个购物车页面。我创建了 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() 函数解决了我的问题,但在更新 swift 之后,此代码出现以下错误:

"The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions."

有人知道怎么解决吗?

最佳答案

当您看到该错误时,通常意味着该行代码中存在(类型)错误。您需要将该特定行分解为几个单独的语句,以便让编译器更快地对其进行推理。您的代码中可能不会总是有错误,但编译器对求解单个表达式有时间限制,如果表达式太复杂,它可能会超过这个时间限制。在这种情况下,您需要将表达式分解为单独的表达式,以允许编译器分别求解每个表达式。

如果将包含标签的数组的声明移到单独的行中,编译器将能够在合理的时间内求解表达式。

func calculateSum() {
let labels: [UILabel] = [label1, label2, label3, label4]
label5.text = String(labels.reduce(0,{$0 + (Double($1.text ?? "0") ?? 0)}))
}

关于ios - 为什么swift更新后会报编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52643333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com