Xcode UITableView中的NSFECTCHEDRESULTCONLER,在数据更改时发出.Move

Xcode UITableView中的NSFECTCHEDRESULTCONLER,在数据更改时发出.Move,xcode,uitableview,core-data,Xcode,Uitableview,Core Data,我正在显示存储在核心数据中的项目列表。 项目按“上次活动”日期排序,并显示上次活动日期: | Item 1 12:33 | -------------------- | Item 2 08:23 | 可以在“后台”中修改这些项,以便通知我正在使用NSFetchedResultsControllerDelegate的更改 如果修改了Item2,则会更改lastActivityDate,因此订单更改会触发NSFetchedResultsChangeType.Move事件 目前在我的

我正在显示存储在核心数据中的项目列表。 项目按“上次活动”日期排序,并显示上次活动日期:

| Item 1     12:33 |
--------------------
| Item 2     08:23 |
可以在“后台”中修改这些项,以便通知我正在使用NSFetchedResultsControllerDelegate的更改

如果修改了Item2,则会更改lastActivityDate,因此订单更改会触发NSFetchedResultsChangeType.Move事件

目前在我的代码中,我正在这样做

if(type == NSFetchedResultsChangeType.Move) {
    self.tableView?.moveRowAtIndexPath(indexPath, toIndexPath: newIndexPath)
}
因此,我有这个

| Item 2     08:23 |  <-- Still displaying old date
--------------------
| Item 1     12:33 |
使用“删除然后插入”而不是“移动”是否存在问题? 我可以看到它正在创建/删除或重新使用单元格,而move没有

如果我想继续移动,在移动过程中(之前或之后)刷新单元格的最佳方式是什么?
如果我以前尝试更新单元格,我会收到一个“尝试使用userInfo为单元格创建两个动画”错误。

FRC委托方法中是否有
tableView.BeginUpdate()
tableView.EndUpdate()
willChange…
didChange…
分别)?是的,我有。事实上,我正在为每个'didChangeObject'调用建立一个项目更改列表。在didChange之后,我在一个beginUpdates/endUpdates中迭代所有更改/
| Item 2     12:44 |  <-- Update date
--------------------
| Item 1     12:33 |
self.tableView?.deleteRowsAtIndexPaths([indexPath] , withRowAnimation: .Automatic)
self.tableView?.insertRowsAtIndexPaths([newIndexPath] , withRowAnimation: .Automatic)