2009-03-12 13 views
3

Meine Anwendung enthält eine Tabellenansicht mit Zeilen und Abschnitten.
Wenn ich das letzte Element eines Abschnitts lösche, lösche ich den Abschnitt. Es funktioniert gut.
Aber wenn ich die letzte Zeile eines Abschnitts in einen anderen Abschnitt verschiebe, erhalte ich einen Fehler.Default Tableview - Löschen von Abschnitten

ist hier mein Code in beiden Fällen:

[categoryArray removeObjectAtIndex:indexPath.section]; 
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop]; 

Hier ist der Fehler, die in moveRowAtIndexPath auftritt: fromIndexPath: toIndexPath:

2009-03-11 17:56:09.524 Test[5140:20b] 1 
2009-03-11 17:56:09.525 Test[5140:20b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (5) beyond bounds (5)' 

Jede Hilfe wäre toll!

Antwort

0

Es sieht so aus, als ob Sie versuchen, auf das sechste Element eines Arrays mit fünf Elementen zuzugreifen. Verwenden Sie die Array-Größe als Index, ohne 1 zu subtrahieren?

2

Nun, tatsächlich versucht mein Code nicht auf ein Element zuzugreifen. Ich denke, der Fehler kommt von einer UITableView-Methode (die ich nicht kenne, weil wir nur Zugriff auf Header-Dateien der SDK haben). Das Problem tritt an dieser Stelle:

[tableView deleteSections:[NSIndexSet indexSetWithIndex:fromIndexPath.section] withRowAnimation:UITableViewRowAnimationTop]; 
+0

Wie haben Sie dieses Problem gelöst? Ich scheine ein ähnliches zu bekommen –

0

ich dieses Problem hatte und ich es einfach gelöst. In meinem Fall benutzte ich Core Data, und ich musste die Löschlogik in

wickeln Ich musste alles wickeln; von vor löschte ich die Daten/Abschnitt bis nachdem ich den Kontext gespeichert hatte. Ich hoffe es hilft.

Verwandte Themen