-[NSLayoutConstraint constant]中的断言失败

4

在我将应用程序运行到iPhone上后,出现了以下错误:

Assertion failure in -[NSLayoutConstraint constant],  /SourceCache/Foundation/Foundation /Layout.subproj/NSLayoutConstraint.m:6432015-10-26 08:43:06.080 AuberML[195:6172] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '(null)'

这个项目是在另一台电脑上制作的,一切都非常顺利。

如果我从我的视图中删除所有约束(在IB中),应用程序不会崩溃,但元素会错位。

我使用iPhone 6开发了该应用程序,现在尝试在iPhone 5上运行它。

我猜我需要重新制定所有约束...

1个回答

8
问题在于IB将常量设置为“标准”:

IB constraint settings

在iOS>=9.0.1下,它可以正常工作。但在iOS<9下,需要明确地将其设置为0。

IB constraint settings

我还没有尝试过Xcode 7.1。

希望这有所帮助!

显然,这与Main.storyboard约束定义中的symbolic = YES语句有关:

<constraint firstItem="inT-RM-poI" firstAttribute="top" secondItem="c5b-4a-YMr" secondAttribute="bottom" multiplier="1175:1920" symbolic="YES" id="jgh-yf-mvT"/>

通过移除它,正常工作...

截至今天(2017年2月),iOS8似乎存在问题。我有一个标准常量,在设备(iOS 8.4)和模拟器(iOS 8.2)上都失败了。将该常量更改为0即可解决问题。此错误在iOS 9上不存在。 - wyu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接