如何将UI与核心数据“同步”?

时间:2015-07-18 09:52:35

标签: ios core-data

我想知道将UI与Core Data同步的常用方法是什么,例如当您在表视图中显示Core Data存储的数据时,并且您希望在用户点击其时显示有关对象的其他信息表格视图中的单元格,如何将表格视图单元格链接到Core Data中的特定对象?我见过很多人不建议使用ID,因为Core Data不是以这种方式设计的,但是如果我们不使用ID那么该使用什么?我本来想要做的事情:“好吧,所选单元格有这个ID,让我们进入Core Data获取具有相同ID的对象”但是如果我不这样做,我该怎么办?

对于需要这种链接的其他情况的相同问题...在我的情况下,我需要地图上的引脚和Core Data对象之间的链接,以便在敲击引脚时显示其他信息有点像在Apple Maps中......例如......

我该怎么办?

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用NSFetchedResultsController来完成此操作 - 您可以从UITableViewController.h .m)继承您的CoreDataTableViewController,这是您需要覆盖的唯一方法将是cellForRowAtIndexPath:。然后可以直接访问对象:

MyCustomObject *obj = [self.fetchedResultsController objectAtIndexPath:indexPath];

答案 1 :(得分:0)

对于第二个问题,当您不使用表格视图时,有两个选项。您可以获取对象(假设您位于堆栈的顶部)或两个,更常见的是,在故事板segue期间使用简单的依赖注入将NSManagedObject实例传递给您。

在表格视图下方/之后的任何视图从不需要获取或调用-objectWithID:之类的内容,因为对象已在内存中,并且控制器会为您提供ID已经有了对象。只需像任何其他语言一样传递对象。