如何解决这个问题?

时间:2018-10-08 10:50:12

标签: swift

编译器无法在合理的时间对该表达式进行类型检查;尝试将表达式分成不同的子表达式

//检查窗口框架中的弹出窗口

let spaceFromLeftSide = cutOutViewX.constant + cutOutViewWidth.constant/2 - (options.textWidth + padding*2)/2

let spaceFromRightSide = cutOutViewX.constant + cutOutViewWidth.constant/2 + (options.textWidth + padding*2)/2

1 个答案:

答案 0 :(得分:0)

问题在于,由于表达式复杂,编译器无法在时间内计算出值。您需要将这些表达式分成以下子表达式:

let cutOutValue = cutOutViewX.constant + cutOutViewWidth.constant/2
let optionsValue = (options.textWidth + padding*2)/2

let spaceFromLeftSide = cutOutValue - optionsValue
let spaceFromRightSide = cutOutValue + optionsValue

这种中断方式不仅有助于编译,而且有助于调试时,在调试时您可以检查变量的当前值。