Ich habe eine Tabellenansicht innerhalb einer VC. Es wird von einem Kerndatenobjekt bevölkert mit dem folgenden Code:Wie Swipe löschen Core-Datentabellenansicht in Swift 2.0
// Variables
var allFruits: NSArray
var managedObjectContext: NSManagedObjectContext
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
func loadFruits(){
// Try to load all of the Fruits from the core data.
let fetchRequest = NSFetchRequest()
let entityDescription = NSEntityDescription.entityForName("Fruit", inManagedObjectContext: self.managedObjectContext)
fetchRequest.entity = entityDescription
do{
self.allFruits = try self.managedObjectContext.executeFetchRequest(fetchRequest)
if self.allFruits.count == 0{
print("No saved Fruits")
}
}
catch
{
let fetchError = error as NSError
print(fetchError)
}
}
Dann wird die Tabellenansicht wird mit diesen spezifischen Frucht Daten gefüllt. Ich habe diese Methode zum Löschen der Früchte aus der Tabelle jedes Mal wenn ich versuche
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if (editingStyle == UITableViewCellEditingStyle.Delete) {
// handle delete (by removing the data from your array and updating the tableview)
managedObjectContext.deleteObject(allFruits[indexPath.row] as! NSManagedObject)
// Attempt to save the object
do{
try appDelegate.managedObjectContext.save()
}
catch let error{
print("Could not save Deletion \(error)")
}
// Remove the deleted item from the table view
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
// Reload the fruits
self.loadFruits()
// Reload the table view
tableView.reloadData()
}
}
Dieser statt nur abstürzt die App bekam die Früchte zu löschen.
‚NSInternalInconsistencyException‘, Grund: ‚Ungültige Update: ungültige Anzahl der Zeilen in Abschnitt 0. Die Anzahl der Zeilen in einem bestehenden Abschnitt nach dem Update enthalten ist (5) muss auf die Anzahl der Reihen gleich in diesem Abschnitt vor dem Update (5), plus oder minus die Anzahl der Zeilen aus diesem Abschnitt eingefügt oder gelöscht (0 eingefügt, 1 gelöscht) und plus oder minus der Anzahl der Zeilen in oder aus dieser Abschnitt bewegt (0 eingezogen, 0 ausgezogen). "
mir den Verdacht, dass es einige Probleme mit der Tatsache ist, dass ich ein NSArray
zu einem NSMutableArray
im Gegensatz verwenden.
Wie kann ich dieses Problem beheben?
Vielen Dank im Voraus.
Ja, dies funktioniert, weil Sie zuerst die Datenquelle aktualisieren. – Lumialxk