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.