如何从断言失败中获取消息?

时间:2014-05-12 21:45:51

标签: ios uitableview

我在调试控制台中得到这个:

*** Assertion failure in -[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8794

但没有关于断言失败的消息。其他时候,当我发现断言失败时,会有一些有用的消息,例如"由于未被捕获的异常而终止应用..."或者其他的东西。什么是调试它的好方法?

2 个答案:

答案 0 :(得分:5)

这个特殊的断言(您可以通过搜索“UIView.m:8794”找到)处理自动布局。

看起来你有一个与自动布局有关的UITableView。你看到的断言是:

*** Assertion failure in -[UITableView layoutSublayersOfLayer:],
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'Auto Layout still required after executing -layoutSubviews. 
UITableView's implementation of -layoutSubviews needs to call super.'

也许您尝试在UITableViewCell或表格页眉或页脚视图中使用自动布局?

答案 1 :(得分:1)

我也有这个错误。表格视图和一切在iOS 8上完美运行,但在iOS 7上崩溃。

原来,我在tableHeaderView期间使用自动布局设置viewDidLoad

我通过为tableHeaderView设置框架而不是使用自动布局来修复此问题。

正如Dave DeLong所说,也可能是您使用自动布局设置了表格视图的页眉或页脚。