我充其量只是一个业余爱好者,并坚持这个错误!当然简单......
- (void)addTapped:(id)sender {
TechToolboxDoc *newDoc = [[TechToolboxDoc alloc] initWithTitle:@"New Item" thumbImage:nil fullImage:nil];
[_itemArray addObject:newDoc];
//[self.tableView beginUpdates];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_itemArray.count-1 inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
NSLog(@"%@",indexPath);
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
[self performSegueWithIdentifier:@"MySegue" sender:self];
//[self.tableView endUpdates];
它突破了说法
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES];
答案 0 :(得分:3)
您需要添加[UITableView beginUpdates]
和[UITableView endUpdates]
:
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES];
从课程参考:
注意在动画中调用此方法时的行为 由beginUpdates和endUpdates方法定义的块。 UITableView的 延迟任何行或部分的插入,直到它处理完毕 行或节的删除。无论订购如何,这都会发生 插入和删除方法调用。这与插入不同 或删除操作可能影响的可变数组中的项目 用于连续插入或删除的数组索引 操作。有关此主题的更多信息,请参阅批量插入,删除, 表格视图编程指南中的行和段重新加载 的iOS。
答案 1 :(得分:0)
我认为您在tableView
中插入了行但未更新number of rows at section
这就是您在此行中收到错误的原因。所以除了插入行之外你还应该增加数组计数或者用来显示表视图中的行数。
答案 2 :(得分:0)
在我的情况下,我使用的是Parse,我删除了一些用户(其中一个是我的iPhone模拟器)。每当刷新tableView时我都会收到此错误。
我刚刚从模拟器中删除了应用程序并创建了一个新帐户,它运行完美。
@ droppy的回答帮助我了解了错误的灯泡时刻!
希望有人帮助。