Ios 加载一个预加载到核心数据中的SQLite数据库

Ios 加载一个预加载到核心数据中的SQLite数据库,ios,swift,core-data,Ios,Swift,Core Data,我在SQLite中预装了一个数据库:“BenedictusCoreData.SQLite” 我在XCode中将其添加到项目中 我修改BenedictusCoreData.xcdatamodeld以创建实体和属性,这些实体和属性的名称和类型与我的sqlite的表和列相同 我在模拟器中运行应用程序,没有编写任何附加代码。我打印主包路径并转到应用程序的沙箱。在/Library/Application Support/I中,我找到了三个文件:.sqlite.sqlite shm.sqlite wal 我

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

我在XCode中将其添加到项目中

我修改BenedictusCoreData.xcdatamodeld以创建实体和属性,这些实体和属性的名称和类型与我的sqlite的表和列相同

我在模拟器中运行应用程序,没有编写任何附加代码。我打印主包路径并转到应用程序的沙箱。在/Library/Application Support/I中,我找到了三个文件:.sqlite.sqlite shm.sqlite wal

我打开.sqlite,它显然是空的,但是Xcode创建了表和列,并使用大写字母,在表名中添加了“Z”,在列名中添加了“Z”,这与添加新表“Z_元数据”、“Z_MODELCACHE”、“Z_PRIMARYKEY”不同

在这一点上,我认为仅仅将我的sqlite从捆绑包复制到“Application Support”文件夹并重写文件不是一个好主意,因为结构完全不同

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


可能您可以帮助我。

在appDelegate中,您可以将默认的.xcdatamodel名称更改为您添加的名称。然后xcode将加载预加载的data.sqlite文件,而不是默认文件。你应该查一下,这方面的教程可能是我没有解释清楚。我拥有的sqlite没有CoreData生成的sqlite的结构。如果我照你说的做,那么Xcode将加载一个没有“Z_元数据”实体和其他一些实体和属性的sqlite文件。我认为这是行不通的。Xcode将采用您输入的内容,您创建的实体仅限于默认的.xcdatamodel,如果您将其指向.sqlite文件,它将采用您的。试试看,把它指向新文件并不复杂。然后你读/写你导入的sqllite文件。对不起,我一直在用“Swift change data model”和类似的东西搜索web,但我没有找到你的建议。试试看,如果我找到更多,我将添加到这个评论中,就我所阅读和搜索的内容而言,这是为了将现有的xcdatamodel传输到不同的xcdatamodel,而不是将现有的sqlite文件传输到xcdatamodel。