首页 > 解决方案 > 加载预加载到 Core Data 中的 SQLite 数据库

问题描述

我在 SQLite 中预装了一个数据库:“BenedictusCoreData.sqlite”。

我将它添加到 XCode 中的项目中。

我修改 BenedictusCoreData.xcdatamodeld 以创建与我预加载的 sqlite 的表和列具有相同名称和类型的实体和属性。

我在模拟器中运行该应用程序而无需编写任何其他代码。我打印主包路径并转到应用程序的沙箱。在 /Library/Application Support/ 我找到三个文件: .sqlite .sqlite-shm .sqlite-wal

我打开 .sqlite,显然它是空的,但是 Xcode 已经创建了带有大写字母的表和列,在表名中添加了“Z”,在列名中添加了“Z”,除了添加新表“Z_METADATA”“Z_MODELCACHE ", "Z_PRIMARYKEY"。

在这一点上,我认为将我的 sqlite 从包中复制到“应用程序支持”文件夹并重写文件不是一个好主意,因为结构完全不同。

所以我不知道如何在您第一次打开应用程序时将 sqlite 预加载的数据库复制到 CoreData 中。

也许你能帮助我。

标签: iosswiftcore-data

解决方案


在 appDelegate 中,您可以将默认的 .xcdatamodel 名称更改为您添加的名称。然后 xcode 将加载您预加载的数据 .sqlite 文件而不是默认文件。你应该搜索它有关于这个的教程


推荐阅读