Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Erro ao tentar ver o endereço de mais de um aluno no mapa

Quando tem mais de um aluno na lista, ao tentar localizar o endereço do segundo aluno no mapa, ele pega os dados do primeiro aluno. Observei esse erro no meu código e baixei o código do tutor para verificar e estava dando o mesmo bug. Alguém pode me ajudar?

2 respostas
solução

Oi Ana, tudo bem?

Ótima observação. No método cellForRow da TableView, precisamos setar algum tipo de identificador para o longPress, assim ele saberá qual foi a linha da TableView selecionada.

Na prática, é só adicionar:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let celula = tableView.dequeueReusableCell(withIdentifier: "celula-aluno", for: indexPath) as! HomeTableViewCell
        let longPress = UILongPressGestureRecognizer(target: self, action: #selector(abrirActionSheet(_:)))
        guard let aluno = gerenciadorDeResultados?.fetchedObjects![indexPath.row] else { return celula }
        celula.configuraCelula(aluno)
        celula.addGestureRecognizer(longPress)

        longPress.view?.tag = indexPath.row

        return celula
    }

Repare que indicamos para o longPress, que a propriedade tag é igual ao indexPath.row da TableView. Dessa forma conseguimos distinguir qual a linha da TableView o usuário fez o longpress.

Espero ter ajudado.

Abs.

Consegui resolver, obrigada!