添加 4 个滑块值时,表达式太复杂,无法在合理的时间错误内解决
Posted
技术标签:
【中文标题】添加 4 个滑块值时,表达式太复杂,无法在合理的时间错误内解决【英文标题】:Expression was too complex to be solved in reasonable time error while adding 4 slider values 【发布时间】:2018-09-03 01:56:04 【问题描述】:我尝试添加这 4 个滑块值,但收到此错误,我该如何解决?代码:
@IBAction func mathValueChanged(_ sender: UISlider)
let total = MathCriASlider.value + MathCriBSlider.value + MathCriCValue.value + MathCriDSlider.value
mathValue.text = "/(total)"
【问题讨论】:
尝试清理项目 (CMD + K
) 并重新构建,如果不起作用,请重新启动 Xcode,如果不起作用,请重新启动您的 mac。
我想知道是否有错误,因为您没有引用“发件人”。 @EmilioPelaez 有道理 - 但如果 所有 四个滑块都连接到 mathValueChanged
,您是否应该(至少在逻辑上)处理 sender
滑块?
如果您希望您的操作添加所有滑块的值,则使用 ivars 而不是 sender
是有意义的。我个人会创建不带参数的方法,但是Xcode默认添加它,并且OP看起来像一个新手,所以他们通过了。但它不应该导致这个错误,它应该只发生在非常复杂的东西上,除非 OP 的计算机被其他东西拖慢了。
我是 OP 吗?无论如何,感谢您的帮助,是的,我是新手。
是的,你是“OP”,意思是“原始发帖人”——这个问题或线程的创建者。
【参考方案1】:
确实令人沮丧,我很惊讶在最新版本的 Swift 中看到这一点。在过去,我只需要分解表达式。例如
let A = MathCriASlider.value
let B = MathCriBSlider.value
let C = MathCriCSlider.value
let D = MathCriDSlider.value
let total = A + B + C + D
如果它仍然抱怨,您甚至可能需要计算一对小计。
第二行需要修复,你的字符串插值是错误的。使用
mathValue.text = "\(total)" // I changed the slash to a backslash
【讨论】:
以上是关于添加 4 个滑块值时,表达式太复杂,无法在合理的时间错误内解决的主要内容,如果未能解决你的问题,请参考以下文章