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

Posted

技术标签:

【中文标题】代码中哪里是保存核心数据的最佳位置?【英文标题】:Where in code is the best place to do a core data save? 【发布时间】:2012-01-21 23:42:24 【问题描述】:

我有一个主要是继承的应用程序。对象 A 有很多对象 B,对象 B 有很多对象 C。

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

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

我应该在 didSelectRowAtIndexPath 中读出它吗?或者是其他东西?那么储蓄呢?这应该发生在回击或其他地方吗?也许在课堂上?

山姆

【问题讨论】:

我想你的对象不是很大,人们不能来回点击页面太快,所以你应该能够经常保存东西,至少在每次推送和弹出时,或者即使在每次编辑时(每次值更改时)。但也不要忘记在您的应用进入后台、屏幕锁定或主页按钮时保存 【参考方案1】:

您应该在用户完成编辑时保存。

您应该在需要 B 时获取它们,等等。当用户点击表格视图中显示所有 A 的行时,然后获取与特定 A 对象相关的 B。您有两种选择:(1) 使用 NSFetchRequest / NSFetchedResultsController 获取它们或 (2) 遍历 A 对象的一对多关系,该关系指向该 A 对象的 B 对象。

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

【讨论】:

以上是关于代码中哪里是保存核心数据的最佳位置?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 设备中保存从 Web 下载的图像的最佳位置?

保存 iphone 游戏状态的最佳位置在哪里 - xcode 4 中的 txt 文件

存储应用程序参数的最佳位置在哪里:数据库、文件、代码......?

在钥匙串中存储用于加密密码的密钥的最佳位置在哪里

图片上传 - 使用 CQRS 和 DDD 放置代码的位置

在 Angular 中捕获路由参数的最佳位置在哪里