www*_*.se 5 xcode background ios autolayout ios-autolayout
当代码的某些部分正在从主线程以外的其他线程更改UI项时,会将此错误记录到控制台.但是我怎样才能找到它的位置呢?
www*_*.se 11
"此应用程序正在从后台线程修改自动布局引擎"的主要问题是它似乎在实际问题发生后很长时间内被记录,这可能使得很难进行故障排除.
我设法通过创建三个符号断点来解决问题.
调试>断点>创建符号断点...
断点1:
符号: -[UIView setNeedsLayout]
条件: !(BOOL)[NSThread isMainThread]
断点2:
符号: -[UIView layoutIfNeeded]
条件: !(BOOL)[NSThread isMainThread]
断点3:
符号: -[UIView updateConstraintsIfNeeded]
条件: !(BOOL)[NSThread isMainThread]
使用这些断点,您可以轻松地在非主线程上错误地调用UI方法的实际行中断.