Je suis nouveau dans le codage et l'apprentissage de Swift, je suis un tutoriel pour Swift 2 et je travaille avec Swift 3. Il y a quelques problèmes que je rencontre en suivant le tutoriel, celui-ci étant celui sur lequel je suis vraiment bloqué.
J'ai un tableau de noms et je suis en train de faire une fonction de balayage et de suppression pour eux qui les supprime d'une variable de noms qui est un tableau. J'ai sélectionné les fonctions qui ressemblent le plus au tutoriel dans xcode et je les ai remplies, mais mon application se plante aléatoirement lorsque je clique sur le bouton de suppression. Voici mon code pour le bouton de suppression...
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (rowAction: UITableViewRowAction, indexPath: IndexPath) -> Void in
print("Deleted")
self.catNames.remove(at: indexPath.row)
self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
self.tableView.reloadData()
}
2 votes
Il suffit de supprimer l'appel à
reloadData
.1 votes
Pour votre information, chaque fois que vous posez une question sur une panne, vous devez inclure des détails pertinents sur la panne, y compris la ligne exacte qui a provoqué la panne et le message d'erreur complet.
0 votes
Retirer le
reloadData
L'appel ne résoudra pas le problème. Regardez les réponses ci-dessous.0 votes
@PhilHudson Il n'y a pas besoin d'appeler.
reloadData
alors que le PO appelle déjà correctementdeleteRows
. Et tant que l'OP n'a pas publié les détails de l'accident, il n'y a aucun moyen de savoir avec certitude quelle est la solution complète.0 votes
@maddy en regardant le code, vous pouvez voir où se trouve le bug. Bien sûr, il aurait dû fournir le journal de bord, mais ce que vous suggérez est une meilleure pratique et non la cause première.