2017-09-02 60 views
2

我有一个小问题,并想尽一切办法弄清楚。我知道这个问题,但我不知道如何解决它。我正在使用CoreData和fetchedResultsController。我的实体被称为“名”和SortDescriptor也是“名”。 如果我有一个单一的项目保存到CoreData并更改名称值,FetchedResultsController调用的.move代替.update在我的TableView标签没有更新。重新启动应用程序或更改项目的不同值后,名称也会更新。 如果我有保存到CoreData一切不止一个项目工作没有任何问题。更新项目不刷新的tableView

如何保持对“名”的SortDescriptor也更新我的tableView的价值。

感谢

+0

检查.move调用中的indexPath和newIndexPath。如果它们相同,则更新标签。 – pbasdf

回答

0

不要忘记把:self.tableView.reloadData()在正确的地方。

+1

谢谢,我忘了把tableView.reloadData()到.move情况。认为tableView.beginUpdates()和tableView.endUpdates()会照顾到这一点。我检查了indexPath == newIndexPath并重新加载了tableView。 Else移动了这一行。 – eberhapa

+0

现在,为了进一步优化它,您可以尝试在所需部分的正确单元索引值处更新它。 :) –

0

最简单的办法是订阅命名通过KVO我们的数据项的属性。只需将您的单元格添加为观察者,并在数据对象更改后立即更新您的UI元素。

注意:不要忘了退订prepareForReuse