我的LayoutConstraints工作正常,然后突然间我在为视图添加约束时开始得到这个。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: Constraint must contain a first layout item'
*** First throw call stack:
(0x7cd012 0x2017e7e 0x7ccdeb 0xde6bf1 0x9c487 0x994a3 0x414fb 0x20224 0x5c6c0 0xc30e83 0x78c376 0x78be06 0x773a82 0x772f44 0x772e1b 0x28eb7e3 0x28eb668 0x149465c 0x2cfd 0x2c25)
libc++abi.dylib: terminate called throwing an exception
在互联网或Apple Docs上没有关于错误信息含义的直接文档。
只是想知道是否有人遇到过这个错误,并知道我可以做些什么来解决它?
答案 0 :(得分:33)
此错误/崩溃的另一个原因可能是,传递给[NSLayoutContraint constraintWithItem ...]方法的视图为零。
答案 1 :(得分:23)
我将Constraint代码从initWithNib方法移到了viewDidLoad,错误自然停止了。
答案 2 :(得分:7)
如果你坚持你的观点与属性确保他们是强大的!这可能是因为它们是零。
答案 3 :(得分:0)
如果您出于某种原因关闭Autolayout,也会发生这种情况,但您仍然会通过代码向任何子视图添加约束(例如,处理方向更改)
当我使用不同的NIB用于iPhone和iPad时,这种情况发生在我身上,并且在使用常见的.m文件时仅关闭了iPhone NIB的Autolayout。
解决方案是检查设备类型并跳过不需要的布局添加。
答案 4 :(得分:0)
这是因为我不小心删除了我的一个 UI 元素的“引用出口”。