我正在研究一款核心数据应用程序(适用于iPhone 3.0,虽然我认为这并没有真正有所作为),但它需要附带一个充满数据的“入门”数据库。使用SQLite,我只需让应用程序在首次启动时将填充的数据库从捆绑包复制到App的文档目录中,然后加载该数据库 - 所有信息都随之出现,我们就可以开始了。但是使用Core Data,我不确定我是否可以将Persistent存储保存到App包并在Core Data开始执行之前复制它。这会导致任何问题吗?有相当多的初始数据,所以我不想以其他格式打包它,并且必须解析它。
答案 0 :(得分:17)
是的,您可以复制预先填充的持久性商店。
我创建了一个填充商店的Mac应用程序。它被复制到我的包中,并在开始时复制到Docs目录。这很好用。我被告知Core Data Books的例子是以同样的方式开发的。
请注意,这并不意味着您可以复制任何旧的SQLite文件。它必须是一个Core Data持久性商店,不过我认为你根据你的问题理解它。
答案 1 :(得分:1)
实际上有一个技巧:您必须使用“.sqlite”以外的扩展名命名要复制的文件,“。bin”才能。否则,Xcode会在构建阶段将文件内容复制到应用程序时更改文件内容,但不会加载。