解决方法:此应用程序正在从后台线程修改自动布局引擎



当代码的某些部分更改来自主线程以外的其他线程的 UI 项时,此错误将记录到控制台。但是我怎样才能找到它在哪里这样做呢?

"此应用程序正在从后台线程修改自动布局引擎"的主要问题是,它似乎在实际问题发生后很长时间才被记录下来,这使得故障排除变得非常困难。

我设法通过创建三个符号断点来解决这个问题。

调试>断点>创建符号断点...

断点 1:

  • 符号:-[UIView setNeedsLayout]

  • 条件:!(BOOL)[NSThread isMainThread]

断点 2:

  • 符号:-[UIView layoutIfNeeded]

  • 条件:!(BOOL)[NSThread isMainThread]

断点 3:

  • 符号:-[UIView updateConstraintsIfNeeded]

  • 条件:!(BOOL)[NSThread isMainThread]

使用这些断点,您可以轻松地在实际行上错误地调用非主线程上的 UI 方法时出现中断。

最新更新