我在我的应用程序委托中有以下代码,作为在其他视图控制器中使用CoreData的快捷方式:
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
然而,我现在收到了错误信息:
"UI API called from background thread" 和 "UIApplication.delegate must be used from main thread only".
我在后台处理 CoreData,但这是我第一次看到这个错误信息。有人知道这里发生了什么吗?
更新:我试图将其移到 appDelegate 类本身中,并使用以下代码 -
let dispatch = DispatchQueue.main.async {
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
}
现在,我无法在AppDelegate
外部访问广告和上下文变量。 我是否遗漏了什么?