Coredata 性能——为只读数据集提供预填充的核心数据 sqlite db

Posted

技术标签:

【中文标题】Coredata 性能——为只读数据集提供预填充的核心数据 sqlite db【英文标题】:Coredata performance -- shipping prepopulated core data sqlite db for readonly data set 【发布时间】:2012-04-26 08:42:51 【问题描述】:

我正在考虑创建一个预填充核心数据 sqlite 文件并复制到我的资源中。并使用它而不是在第一次运行时从头开始创建数据库。

我的数据是只读的,不会被iphone app修改。

数据库可能会每月更新一次。那么对于更新我可以通过http请求获取更新的coredata sqlite db并丢弃前一个并开始使用更新的数据库。 这种方法还可以为我省去迁移和其他事情的麻烦

如果这种方法看起来不错,请提出建议

【问题讨论】:

【参考方案1】:

是的,你的想法似乎没问题,但有一个问题。

主应用程序包中的文件是只读的,因此您无法更新 sqlite 文件。

您可以做的是,当您创建 coredata 存储文件时,检查该文件是否在文档目录中。如果不存在,则从那里复制捆绑包中的文件,然后创建托管存储。

【讨论】:

以上是关于Coredata 性能——为只读数据集提供预填充的核心数据 sqlite db的主要内容,如果未能解决你的问题,请参考以下文章

在Django Admin中将预填充的段塞字段设置为只读

iPhone上的预加载数据库?

在 EditView 中使用 CoreData 中的值预填充 SwiftUI 表单

可以将 Core Data 与不同的预填充 sqlite db 一起使用吗?

CoreData:从捆绑的数据库中迁移数据

iOS 7 预填充的 Core Data 数据库不包含所有数据