如何解决:此应用程序正在从后台线程

时间:2017-08-15 08:26:28

标签: ios xcode background autolayout ios-autolayout

当代码的某些部分正在从主线程以外的其他线程更改UI项时,会将此错误记录到控制台。但我怎样才能找到它的作用呢?

1 个答案:

答案 0 :(得分:9)

&#34的主要问题;此应用程序正在从后台线程修改自动布局引擎"是因为它似乎在实际问题发生后很长一段时间都被记录下来,这可能会让你很难排除故障。

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

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

断点1:

  • 符号:-[UIView setNeedsLayout]

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

断点2:

  • 符号:-[UIView layoutIfNeeded]

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

断点3:

  • 符号:-[UIView updateConstraintsIfNeeded]

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

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