这是我的代码,它应该删除所选行。它导致应用程序崩溃,因为它声称行数不正确。我检查过,这是不正确的;表中的行已被删除,但显然行数尚未更新(代码确实被击中)......这怎么可能? (我有另一个UITableViewController与确切的代码,它的工作原理)。我该如何解决?
if (editingStyle == UITableViewCellEditingStyleDelete) {
// remove row from the table
SQLite *sql = [[SQLite alloc] init];
[sql deleteReadingsRow: indexPath.row];
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
以下是确定行数的代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
SingletonListOfReadings *rShareInstance = [SingletonListOfReadings sharedInstance];
return rShareInstance.listOfReadings.count; // Return the number of rows in the section
}
答案 0 :(得分:0)
我发现了问题...我依赖于单件(SingletonListOfReadings),当在d / b表中删除行时,该单件没有被重置。
答案 1 :(得分:0)
当您发现问题时,应该考虑使用NSFetchedResultsController。只需很少的工作,它就可以在添加,删除或修改行时自动更新表。它通常比依赖于保持单体同步的解决方案更可靠。有许多将它与表格一起使用的例子。