作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
在尝试调试 AutoLayout 问题时(在某些情况下,表格单元格应该根据其内容的大小增长,但在某些情况下却没有),我在 tableView:heightForRow 的最后一行设置了一个断点:
方法,并尝试打印 systemLayoutSizeFittingSize 的值:
我明白了:
(lldb) p ((CGSize)[cachedCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]).height
2014-10-14 11:15:49.492 AppName[72132:10302054] This NSLayoutConstraint is being configured with a constant that exceeds internal limits. A smaller value will be substituted, but this problem should be fixed. Break on void _NSLayoutConstraintNumberExceedsLimit() to debug. This will be logged only once. This may break in the future.
(CGFloat) $0 = 57
好吧,这很有趣。但我试着按照它说的去做,并在该函数上设置了一个断点:
...而且这个断点没有被击中。
(令人恼火的是,它似乎在某些情况下有效,但在其他情况下无效,而且我看不出设置有什么不同。)
最佳答案
从符号名称中省略 ()
。如果您使用调试器控制台窗口通过 breakpoint set --name
命令设置此断点,将会更清楚地发生什么:
(lldb) br s -n _NSLayoutConstraintNumberExceedsLimit()
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
(lldb) br s -n _NSLayoutConstraintNumberExceedsLimit
Breakpoint 2: where = Foundation`_NSLayoutConstraintNumberExceedsLimit, address = 0x00007fff9168e6f5
(lldb)
如果您在 Xcode 调试 session 中使用了 断点列表
(br l
) 命令,您会看到 _NSLayoutConstraintNumberExceedsLimit()
没有在任何位置设置断点。
关于ios - "This NSLayoutConstraint is being configured with a constant that exceeds internal limits",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357226/
我是一名优秀的程序员,十分优秀!