执行后台操作时出现Xcode错误

时间:2019-11-21 01:28:04

标签: ios swift xcode

同时执行多个后台操作以及警报对话框时,我面临以下问题。

  

从主线程访问引擎后,此应用程序正在从后台线程修改自动布局引擎。这会导致引擎损坏和奇怪的崩溃。

这是在Xcode 11和Swift IOS 5中发生的,我发现此问题已得到解决,但是由于Xcode 11发生了变化,因此先前的建议不可行,因为所需的功能在Xcode 11中不可用。

1 个答案:

答案 0 :(得分:0)

此警告是因为您尝试在后台线程上对UIKit中的类进行操作(通常意味着它以UI-开头)。这可以是尝试推送或呈现,设置某些值(例如在图像视图上显示图像),调整或进行约束(有时VC或视图的初始化会导致约束,因此甚至初始化它们),访问诸如{ {1}},等等。

如果您打开主线程运行时检查器,Xcode应该准确告诉您发生了什么。默认情况下应启用此功能,否则请启用:

单击Xco​​de左上方运行按钮旁边的方案名称。然后点击“编辑方案”,然后在“诊断”下确保已切换“主线程检查器”。


现在再次运行,Xcode会准确告诉您问题出在哪里。

所有您需要做的就是包装到主线程中的分派:

UIApplication.shared.applicationState

根据您的判断,将整个函数包装起来或在调用链的更远的调用位置包装是有意义的。