我正在尝试使用向 tableview 添加一行
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
它抛出一个异常,我调用 insertRowsAtIndexPaths:withRowAnimation:,它说
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
它返回正确数量的行和部分,但在抛出异常之前它从未到达 cellForRowAtIndexPath。我也在使用情节提要执行此操作,并且我将 tableView 设置为具有静态单元格,因为大多数 tableView 实际上确实具有静态单元格。我真的不想切换到动态原型,因为那样我就不能拥有我正在使用的 IBOutlets 和 IBActions,而且我必须从根本上重新开始考虑单元格的布局。有什么方法可以让我摆脱这个异常而不改变我的 tableView 来拥有动态原型单元格?
编辑
我发布之前的那一行是
[itemsInCurrentPurchase insertObject:itemName atIndex:0];
这应该更新数组。我在用
[itemsInCurrentPurchase count]
对于我在节中的行数,它在更新后返回正确的数字。问题是甚至没有达到 cellForRowAtIndexPath 方法。在更新期间,在行数和可能导致此错误的单元格类型之间是否还有其他调用?