UIApplication.delegate deve ser usado apenas no thread principal [duplicado]
Esta pergunta já tem uma resposta aqui:
- [UIApplication delegate] deve ser chamado apenas do thread principal 2 respostasEu tenho o código a seguir no meu representante de aplicativo como um atalho para trabalhar com CoreData em meus outros viewControllers:
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
No entanto, agora recebo a mensagem de erro:
"API da interface do usuário chamada do thread de segundo plano" e "UIApplication.delegate devem ser usadas apenas do thread principal".
Estou trabalhando com o CoreData enquanto meu aplicativo está em segundo plano, mas é a primeira vez que vejo essa mensagem de erro. Alguém sabe o que está acontecendo aqui?
Atualização: tentei mover isso para dentro da própria classe appDelegate e usando o seguinte código -
let dispatch = DispatchQueue.main.async {
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
}
Agora, não posso mais acessar as variáveis de anúncio e contexto fora doAppDelegate
. Tem algo que estou perdendo?