我有一个使用大量第三方库的大型应用程序,现在我在日志中看到以下错误:"此应用程序正在从后台线程修改自动布局引擎主线程。这可能导致引擎损坏和奇怪的崩溃。"
从我在SO上找到的内容来看,这可能是由于后台线程上的UI元素被更改引起的,这会触发自动布局。不幸的是,我们有很多UI元素被许多不同的移动部件改变,我不知道找到罪魁祸首的最佳方法。
有人能告诉我怎样才能找出从后台线程触发autolayout更改的确切原因?
答案 0 :(得分:1)
有时它不是完成块,而是在后台执行的任何操作。 在我的情况下,发送的是通知。我在我的应用程序中实现了 iCloud ,这意味着当在其他设备上编辑或添加数据时,其他应用程序会收到iCloud更新/通知,这会触发UITableView的更新。 更新UITableView的代码没有在MainThread中完成。添加注释中显示的代码会修复它。