2016-08-08 40 views
-1

Ich habe das Problem, wo, nachdem ich meine tableview Zeile gelöscht hatte, wird die Zeile nicht entfernt, hier ist der Code, ich hatte das Tutorial online folgen, und es erfolgreich löschen aus Datenmodell, aber es wird nicht die gelöschte Zeile entlassen, es sei denn, ich entspanne zurück zum vorherigen Bildschirm und zurück zu dieser Ansicht, warum ist es? :UITableView Zeile wird nicht gelöscht, nachdem sie gelöscht wurde

Antwort

0

Sie müssen auch das Objekt aus Ihrem Array entfernen und dann Ihren tableView nach moc.save() erfolgreich neu laden.

let managedObject : NSManagedObject = self.frc.objectAtIndexPath(indexPath) as! NSManagedObject 
self.moc.deleteObject(managedObject) 
do { 
    try self.moc.save() 

} catch { 
    print("Failed to save.") 
    return 
} 

Edit: Sie müssen, dass in Ihrer Frage hinzufügen, die Sie NSFetchedResultsController verwenden, jetzt denke ich, Sie den Delegaten mit Ihrem self.frc.delegate = self festgelegt haben, dann fügen Sie diese Delegatmethode auch die reloadData entfernen gibt es keine brauche das jetzt.

Für weitere Details über NSFetchedResultsController überprüfen Tutorials wird es Ihnen helfen.

+0

es ein Fehler "Wert vom Typ 'NSFetchResultsController' hat kein Mitglied 'entfernen Objekt'." – bobo

+0

Überprüfen Sie meine bearbeitete Antwort :) –

+0

es funktioniert, vielen Dank :) – bobo

2

Sie laden die Tabelle neu, bevor Sie die Löschungen speichern, so dass Sie eine neu geladene Tabelle erhalten, die immer noch dieselben Daten enthält. Setzen Sie self.tableView.reloadData() nach dem Speichern.

+0

nicht helfen, meine apps Absturz – bobo