Why would the following code throw this error?
if ([self.tableView.dataSource numberOfSectionsInTableView:self.tableView] > 0 && [self.tableView.dataSource tableView:self.tableView numberOfRowsInSection:0] > 1) {
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
}
throws
*** Terminating app due to uncaught exception ‘NSRangeException’, reason: ‘-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (0) beyond bounds (0).’
It’s pretty early in the morning, but I’m stumped.
Try to call
[self.tableView reloadData]just before the lines that you post.I bet that the datasource is ready after the table is rendered and you call the
scrollTo...method before rendering the table with the data in the datasource…