2
当代码的某些部分正在从除主线程之外的其他线程更改UI项目时,将此错误记录到控制台。但是,我怎么能找到它在哪里呢?如何解决:此应用程序正在从后台线程修改自动布局引擎
当代码的某些部分正在从除主线程之外的其他线程更改UI项目时,将此错误记录到控制台。但是,我怎么能找到它在哪里呢?如何解决:此应用程序正在从后台线程修改自动布局引擎
“此应用程序正在从后台线程修改自动布局引擎”的主要问题在于,它似乎在发生实际问题后很久才记录,这可能会使其很难排除故障。
我设法通过创建三个符号断点来解决问题。
调试>断点>创建符号断点...
断点1:
符号:-[UIView setNeedsLayout]
条件:!(BOOL)[NSThread isMainThread]
断点2:
符号:-[UIView layoutIfNeeded]
条件:!(BOOL)[NSThread isMainThread]
断点3:
符号:-[UIView updateConstraintsIfNeeded]
条件:!(BOOL)[NSThread isMainThread]
有了这些断点,你可以轻松地获得实际行,其中错误地呼吁非主线程UI方法休息。