【发布时间】:2012-07-17 07:17:48
【问题描述】:
我想创建一个大型数据库。我正在考虑为此目的使用核心数据。但我想手动将数据插入其中一次。这些数据永远不会被删除或编辑,而只会被读取。如何使用核心数据将如此大量的对象添加到数据库中?如何在核心数据中创建数据库并且只写入一次。
【问题讨论】:
标签: objective-c ios cocoa-touch ipad core-data
我想创建一个大型数据库。我正在考虑为此目的使用核心数据。但我想手动将数据插入其中一次。这些数据永远不会被删除或编辑,而只会被读取。如何使用核心数据将如此大量的对象添加到数据库中?如何在核心数据中创建数据库并且只写入一次。
【问题讨论】:
标签: objective-c ios cocoa-touch ipad core-data
你的问题很笼统,但我会尽量给你一些提示。
根据我的经验,最简单的实现方法是按照以下两个步骤进行:
1) 您可以创建一个 XML、JSON 或 plist 格式的外部文件,您可以对其进行解析并用于创建预置的 Core Data 存储。您可以在core-data-tutorial-how-to-preloadimport-existing-data-updated 中找到一些信息。特别是,您可以设置一个虚拟项目(或仅使用 AppDelegate 方法)并使用它来创建商店,例如MyDataStore.sqlite。
2) 创建后,忘记之前使用过的例程,并将商店发送到应用程序的应用程序包中。那里的商店是只读的。否则,如果你需要修改它,你是不被允许的,所以你需要移动它,例如,移动到文档目录。
您可以在以下 SO 主题中找到更多信息:
Is Core Data useful for readonly data too?
How can I ship my app with a pre-populated Core Data database?
Core Data Store included in App Bundle
附:如果您在生产中并且需要对商店进行相同的更改,则需要重新发布应用程序(因为商店在主捆绑包中)。为避免这种情况,您需要将存储移动到不同的目录并设置例如某种同步机制。
希望对您有所帮助。
【讨论】: