ios - 加载预加载到 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 中。
也许你能帮助我。
解决方案
在 appDelegate 中,您可以将默认的 .xcdatamodel 名称更改为您添加的名称。然后 xcode 将加载您预加载的数据 .sqlite 文件而不是默认文件。你应该搜索它有关于这个的教程
推荐阅读
- docker - Traefik 和我在容器中的 Web 应用程序
- android - 安装我的应用程序后,Android 启动器不断崩溃
- c# - 从动画控制器统一启用/控制游戏对象上的脚本?
- angular - 如何在下拉列表中对 ngx-mat-select-search 上的 valueChanges 方法进行单元测试
- opencv - 将处理后的帧从 openCV 流式传输到 IP
- javascript - 在 Nativescript (-vue) 中加载博客文章
- c++ - 为什么在详细的类型说明符中不允许使用 typedef?
- python - 将日期范围列拆分为月份 - Python,Pandas
- c# - 如何将公共类“salida”中的“gdbFullName”字符串值传递给字符串“fcName”?
- java - jpql(JPA)中的重复父子数据