在代码中哪里是进行核心数据保存的最佳位置?

时间:2012-01-21 23:42:24

标签: uitableview core-data uinavigationcontroller

我有一个主要是heirachy的应用程序。对象A有许多对象B,而对象B有许多对象C。

我通过导航类型的应用程序在我的iOS应用程序中显示它们,A在首页上,你推送到B并推送到C。

我希望能够保存我的A,B,C对象(它们是自定义类)的每个实例,但是我不太确定何时保存和读取它们作为显示有关A,B和A的数据的表视图需要在推送视图时/之前填充C.

我应该在didSelectRowAtIndexPath中读出它吗?或者是其他东西?那么储蓄呢?应该在回击或其他地方进行吗?在班上本身也许?

萨姆

1 个答案:

答案 0 :(得分:0)

只要用户完成编辑,您就应该保存。

一旦你需要它们,你应该得到你的B等。当用户点击表格视图中显示所有A的一行时,然后获得与该特定A对象相关的B.这里有两个选项:(1)用NSFetchRequest / NSFetchedResultsController或(2)遍历A对象的to-many关系,指向A对象的B对象。

至于保存:请注意,如果您进行了大量编辑,则保存可能需要一段时间。您可以使用iOS 5中的一些高级技术和嵌套竞赛(-parentContext),这些技术允许您保存在不同的(非主要)线程上。但是,您必须确保在您暂停之前保险箱已完成,因为系统可以在您处于后台时终止您的过程。