Mein Code scheint gut zu laufen, aber wenn ich wische, um eine Zeile in meinem UITableView zu löschen, stürzt die App mit folgendem ab:
LittleToDoApp [70390: 4116002] *** Beenden der App aufgrund der nicht abgefangenen Ausnahme 'NSInternalInconsistencyException', Grund: 'Ungültiges Update: ungültige Anzahl von Zeilen in Abschnitt 0. Die Anzahl der Zeilen in einem vorhandenen Abschnitt nach der Aktualisierung (1 ) muss gleich der Anzahl der Zeilen in diesem Abschnitt vor der Aktualisierung sein (1), plus oder minus der Anzahl der Zeilen eingefügt oder gelöscht aus diesem Abschnitt (0 eingefügt, 1 gelöscht) und plus oder minus der Anzahl der Zeilen in bewegt oder aus diesem Abschnitt (0 ist eingezogen, 0 ausgezogen). "
Sollte ich nach den Kommentaren von Fennelouski etwas in dieser Richtung haben?
%Vor%Das ist was ich bekomme:
Die Anzahl der Zeilen in Ihrer Tabelle ist [[ToDoItemSvc retrieveAllToDoItems] count]
. Wenn Sie 1
row in Ihrer Tabelle löschen, sollte die Anzahl der Zeilen in Ihrer Tabelle 1
kleiner als die Anzahl der Zeilen sein, bevor Zeilen gelöscht werden. Nachdem Sie 1
row gelöscht und [self.tableView reloadData]
aufgerufen haben, überprüft das tableView, wie viele Zeilen es in der Tabelle gibt. An diesem Punkt gibt numberOfRowsInSection
[[ToDoItemSvc retrieveAllToDoItems] count]
zurück. Dies sollte jetzt 1
weniger als vor dem Löschen einer Zeile sein.
Die kurze Antwort ist, dass Sie zuerst ein Element aus Ihrer dataSource entfernen müssen, das scheint [ToDoItemSvc retrieveAllToDoItems]
zu sein, dann löschen Sie eine Zeile.
Das Kompliment dazu ist, wenn Sie eine Zeile hinzufügen, müssen Sie auch ein Element zu Ihrer dataSource hinzufügen.
Diese Änderungen müssen durchgeführt werden, bevor Sie reloadData
aufrufen.
ELI5: Ein Lehrer hat fünf Schüler: Alice, Bob, Charlie, Diane und Eric. Bobs Mutter holt ihn früh von der Schule vor dem Mittagessen ab. Nach dem Mittagessen nimmt der Lehrer Anwesenheit und Panik, weil er nur vier Kinder hat, wenn die Liste sagt, dass es fünf geben sollte. Wo ist Bob ?!
Wenn Bobs Mutter seinen Namen von der Liste gestrichen hätte, als sie ihn aus der Schule genommen hat, wäre der Lehrer nicht in Panik geraten.
Tags und Links objective-c uitableview ios