当代码的某些部分正在从主线程以外的其他线程更改UI项时,会将此错误记录到控制台。但我怎样才能找到它的作用呢?
答案 0 :(得分:9)
&#34的主要问题;此应用程序正在从后台线程修改自动布局引擎"是因为它似乎在实际问题发生后很长一段时间都被记录下来,这可能会让你很难排除故障。
我设法通过创建三个符号断点来解决问题。
调试>断点>创建符号断点......
断点1:
符号:-[UIView setNeedsLayout]
条件:!(BOOL)[NSThread isMainThread]
断点2:
符号:-[UIView layoutIfNeeded]
条件:!(BOOL)[NSThread isMainThread]
断点3:
符号:-[UIView updateConstraintsIfNeeded]
条件:!(BOOL)[NSThread isMainThread]
使用这些断点,您可以轻松地在非主线程上错误调用UI方法的实际行中断。