1
resposta

Exception após implementar o alerta de média dos alunos

Estou recebendo a seguinte exception após clicar no botão da agenda: Thread XX: Exception: "Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread." Ele varia de qual thread vem a Exception.

Baixei a versão finalizada do app para testar, e também está dando o mesmo erro.

Até o momento de implementar o alerta, o aplicativo funciona normalmente e apresenta a média dos alunos no console.

@IBAction func buttonCalculaMedia(_ sender: UIBarButtonItem) {
            guard let listaDeAlunos = self.gerenciadorDeResultados?.fetchedObjects else { return }
            CalculaMediaAPI().calculaMediaGeralDosAlunos(alunos: listaDeAlunos, sucesso: { (dicionario) in
                if let alerta = Notificacoes().exibeNotificacaoDeMediaDosAlunos(dicionarioDeMedia: dicionario) {
                    self.present(alerta, animated: true, completion: nil)
                }
            }) { (error) in
                print(error.localizedDescription)
           }
    }

Já testei o seguinte código, porém sem solução também.

DispatchQueue.main.async {
    //alerta aqui dentro
}
1 resposta

Opa amigo, tenta usar assim:

@IBAction func buttonCalculaMedia(_ sender: UIBarButtonItem) {
            guard let listaDeAlunos = self.gerenciadorDeResultados?.fetchedObjects else { return }
            CalculaMediaAPI().calculaMediaGeralDosAlunos(alunos: listaDeAlunos, sucesso: { (dicionario) in
               DispatchQueue.main.async {
                if let alerta = Notificacoes().exibeNotificacaoDeMediaDosAlunos(dicionarioDeMedia: dicionario) {
                        self.present(alerta, animated: true, completion: nil)
                }
    }
            }) { (error) in
                print(error.localizedDescription)
           }
    }