如何使用预先填充的领域数据库提供应用程序

swa*_*ner 28 realm

我想在我的领域数据库中提供已预先填充数据的应用程序.我是否只需将其复制到文档目录或是否还有其他事情要做?

jps*_*sim 30

Realm的文档有一节"将一个领域与一个应用程序捆绑在一起":

通常使用初始数据为应用程序设定种子,使其在首次启动时立即可供您的用户使用.这是如何做到这一点:

  1. 首先,填充领域.您应该使用与最终发货应用相同的数据模型来创建领域,并使用您希望与应用捆绑在一起的数据填充该领域.由于领域文件是跨平台的,您可以使用OS X应用程序(请参阅我们的JSONImport示例)或在模拟器中运行的iOS应用程序.

  2. 在您生成此领域文件的代码中,您应该通过制作文件的压缩副本来完成(请参阅 - [RLMRealm writeCopyToPath:error:]).这将减少Realm的文件大小,使您的最终应用程序更轻松地为您的用户下载.

  3. 将领域文件的新压缩副本拖到最终应用程序的Xcode Project Navigator中.

  4. 转到Xcode中的app target的构建阶段选项卡,并将realm文件添加到"Copy Bundle Resources"构建阶段.

  5. 此时,您的应用可以访问您的捆绑领域文件.您可以使用[[NSBundle mainBundle] pathForResource:ofType:]找到它的路径.

  6. 您可以通过调用[RLMRealm realmWithPath:readOnly:error:]来创建只读域.或者,如果您想基于此初始数据创建可写领域文件,可以使用[[NSFileManager defaultManager] copyItemAtPath:toPath:error:]将捆绑文件复制到应用程序的Documents目录,然后通过以下方式构建新领域:使用[RLMRealm realmWithPath:].

您可以参考我们的迁移示例应用程序,以获取有关如何使用捆绑领域文件的示例.

  • Android的说明怎么样?Java的文档缺少类似的部分. (3认同)
  • 您可以在此处查看如何在Java迁移示例中捆绑Realm文件的示例:https://github.com/realm/realm-java/blob/master/examples/migrationExample/src/main/java/io/realm /examples/realmmigrationexample/MigrationExampleActivity.java. (3认同)