Wie füge ich neue Zellen in einer UITableView?
Ich versuche eine Zeile hinzufügen, um eine tableview mit
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
Wirft er eine Ausnahme, wo ich anrufen insertRowsAtIndexPaths:withRowAnimation:), was sagt
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
Es ist wieder die korrekte Anzahl von Zeilen und Abschnitte, aber es macht es nie zu cellForRowAtIndexPath vor dem werfen der Ausnahme. Ich mache das mit einem storyboard auch und ich habe die tableView gesetzt zu haben statische Zellen, weil die Mehrheit der tableView in der Tat haben statische Zellen. Ich möchte wirklich nicht, um die Umstellung auf dynamische Prototypen, denn dann kann ich nicht IBOutlets und IBActions, die ich benutze, und ich müsste im wesentlichen starten Sie über und über mit Bezug auf die Anordnung der Zellen. Gibt es eine Möglichkeit für mich, um loszuwerden, diese Ausnahme ohne änderung meiner tableView zu haben dynamische Prototyp-Zellen?
Bearbeiten
Die Zeile rechts, bevor ich was gepostet wird, ist
[itemsInCurrentPurchase insertObject:itemName atIndex:0];
soll update array. Ich bin mit
[itemsInCurrentPurchase count]
für meine Anzahl der Zeilen in der Sektion und es ist wieder die richtige Nummer nach dem update. Das problem ist, dass der cellForRowAtIndexPath Methode ist noch nicht einmal erreicht wird. Während der Aktualisierung ist es etwas anderes, die aufgerufen wird zwischen der Anzahl der Zeilen und der Art der Zelle, die verursachen könnten diese Fehler?
- Hast du das update der datasource array vor dem einsetzen? Sie benötigen ein update vor dem Aufruf dieser.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Datenquelle aktualisieren mit diesem neuen Objekt vor dem einfügen der Zeile. Sonst wird es Abstürzen, während Sie versuchen, aktualisieren der Ansicht Tabelle mit dieser neuen Reihe.
zB:-
@[indexPath]
tut? Schafft es ein array mitindexPath
als einziges Objekt?insert
- Methode, und fügen[tableview reloadData]
ist es immer noch abstürzt? Auch ist dieser Abschnitt bereits vorhanden? Gibt es irgendwelche anderen Zeilen in diesem Abschnitt? Wenn nicht, müssen SieinsertSections
Methode.[tableview reloadData]
und überprüfen Sie dann mithilfe der break-Punkte. Es ist noch zu zeigen, dass crash?[itemsInCurrentPurchase addObject:itemName]
und dann reloadData und überprüfen, was der neue Fehler?