我在Xcode中编写这段代码,你可以在游乐场试试。
let constraintSize = CGSize(width: 500.0 - 55.0 - 35.0 - 60.0 - 10.0 - 15.0, height: 9999)
编译器告诉此消息
expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions
为什么编译器会说出这个愚蠢的消息,这是一个很好的想法,因为很明显它只是一个简单的计算。
答案 0 :(得分:1)
编译器不喜欢将表达式作为函数参数。
我想这是一个源代码解析问题,而不是计算问题。
解决方案显而易见:
let width = 500.0 - 55.0 - 35.0 - 60.0 - 10.0 - 15.0
let constraintSize = CGSize(width: width, height: 9999)
答案 1 :(得分:1)
嗯,显然这是一个语言问题。编译器应该能够执行这个简单的表达式。但是,在某些情况下,观察到长表达式会占用100%的CPU导致死锁。
查看this thread和this thread了解详情。猜猜你已经知道你的情况下的解决方案,所以不发布它:)。