Спасибо, я понимаю. По сути, если приложение не работает в основной диспетчерской, я не могу использовать 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
, Я что-то упускаю?