我正在使用上下文保存数据,而我的FetchedResultsController
会监听更改:
- (void)controller:(NSFetchedResultsController*)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath*)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath*)newIndexPath
{
NSLog(@"CHECK THE COUNT AND INDEXPATH %d , %d ",[self.fetchedResultsController.fetchedObjects count],indexPath.row);
NSLog(@"New Indexpath %d",newIndexPath.row);
if (type == NSFetchedResultsChangeInsert) {
[self.tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; //UITableViewRowAnimationAutomatic
} else if (type == NSFetchedResultsChangeMove) {
[self.tableView moveRowAtIndexPath:indexPath toIndexPath:newIndexPath];
} else if (type == NSFetchedResultsChangeDelete) {
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
} else if (type == NSFetchedResultsChangeUpdate) {
// [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
} else {
NSAssert(NO,@"");
}
}
此委托被调用,但在此之后,绑定到fetchedResultsController的TableView
没有使用插入的最新记录进行更新。
答案 0 :(得分:0)
您是否为NSFetchedResultsControllerDelegate
实施了所有委托方法?听起来您已在-controllerWillChangeContent:
中关闭了更新,但未通过正确实施-controllerDidChangeContent:
方法将其重新打开。
如果您已将它们都实施,那么请使用该代码更新您的问题。