自动布局内部错误发生在视图被解散时

当我解雇一些我有一些限制的观点时,我得到一个有趣的错误。

自动布局内部错误。 在接近零系数的variables的优化过程中,无法find传入头AppName.ViewName:0x7fc072ed8ef0.Width {id:6805}的传出行头,这绝不应该发生。

我收到这个错误,我添加了这些约束的几个视图。 此错误消息的一个变体是以下内容:

自动布局内部错误。 在接近零系数的variables的优化过程中,找不到输出行{head:id:6630}的输出行头,这绝不应该发生。

有没有人遇到类似的问题,这个错误? 有关如何debugging的任何提示?

我仍然不能100%确定这是为什么这样,但关键是,如果将整数作为等宽或高的约束值,则约束系数接近零。

例如,你不能做像1.2或0.8这样的扁平值,你需要做的是0.79999或者1.199999,否则你将在某些设备上崩溃。

我更新了所有的约束,使用像0.7999这样的数字,它的工作。

想要疯狂的证据? 把它放在操场上

let a: Double = 0.8 let b: Double = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 print(a == b) 

操场的结果然后惊人地读:

0.8 0.79999999“假”

疯狂,但是这正好显示了错误发生的原因。 希望这可以帮助。