Спасибо, я понимаю. По сути, если приложение не работает в основной диспетчерской, я не могу использовать coreData?

от вопрос уже есть ответ здесь:

- [UIApplication делегат] должен вызываться только из основного потока 2 ответа

У меня есть следующий код в моем делегате приложения в качестве ярлыка для работы с CoreData в других моих viewControllers:

let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext

Однако теперь я получаю сообщение об ошибке:

«API пользовательского интерфейса вызывается из фонового потока» и «UIApplication.delegate должен использоваться только из основного потока».

Я работаю с CoreData, пока мое приложение работает в фоновом режиме, но я впервые вижу это сообщение об ошибке. Кто-нибудь знает, что здесь происходит?

Обновление: я попытался переместить это внутри самого класса appDelegate, используя следующий код:

let dispatch = DispatchQueue.main.async {
    let ad = UIApplication.shared.delegate as! AppDelegate
    let context = ad.persistentContainer.viewContext
}

Теперь я больше не могу получить доступ к рекламным и контекстным переменным внеAppDelegate, Я что-то упускаю?

Ответы на вопрос(1)

Ваш ответ на вопрос