我有一个显示底层 NSFetchedResultsController 的 UITableView。
当 fetchedResultsController 更新时,
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
叫做。并执行以下操作:
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:shiftedIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
只为新行调用 cellForRowAtIndexPath(这是合乎逻辑的)
然而,问题是表格视图的行中显示的所有值都被向下移动。第一行显示其标题。第二行显示第一行的标题。第三行第二行的标题等。如果我重复一遍,第三行将显示第二行的标题,第四行将显示第三行的标题等。
我不明白会发生什么,特别是因为 cellForRowAtIndexPath 只为新行调用(这是合乎逻辑的)而不是所有这些行。此外,如果我单击这些标题错误的行,它会打开正确的文档(didSelectRowAtIndexPath 与 indexPath 一起正常工作)
有什么可能发生的线索吗?谢谢!