donc j'ai une application avec des boutons radio pour cocher des tâches, tout fonctionne comme prévu tant que je laisse l'animation se terminer mais si j'appuie sur deux boutons en même temps fois que je reçois une erreur:Dispatch.main.asyncAfter() crash application quand il est appelé avant qu'il ne soit terminé
libc++abi.dylib: terminating with uncaught exception of type NSException
Le code exécuté chaque fois qu'un RadioButton est exploité
func RadioTapped(_ cell: TableViewCell) {
if let indexPath = tableView.indexPath(for: cell) {
// Removes task from coreData
let task = self.tasks[indexPath.row]
print(tasks.count)
self.context.delete(task)
print(tasks.count)
(UIApplication.shared.delegate as! AppDelegate).saveContext()
do{
self.tasks = try self.context.fetch(TodayTask.fetchRequest())
// Animates the removal of task cell
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(800),execute: {
self.tableView.beginUpdates()
self.tableView.deleteRows(at: [indexPath], with: .fade)
self.tableView.endUpdates()
})
} catch {
print("Fetching Failed")
}
}
}
message d'erreur
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (11) must be equal to the number of rows contained in that section before the update (13), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).'
exécuter sur le simulateur pour obtenir le journal des erreurs .. –
je l'ai couru sur le simulateur, mais où trouver le journal? –
Vous devez montrer le message associé à l'exception, il vous dira ce qui s'est mal passé, mais je dirai que 'asyncAfter' est une odeur de code; vous ne devriez pas avoir besoin de délais – Paulw11