2012-08-14 87 views
0

我目前正在研究需要数据的应用程序。例如:书籍清单。创建首次启动时预先填充的数据库的最佳方式是什么? 或者我们是否需要在第一次启动时填充核心数据库?数据发布应用程序

在此先感谢您的帮助:)

+1

http://stackoverflow.com/questions/11922800/coredata-deliver-setup-default-data – Adam 2012-08-14 19:16:45

+1

可能的重复[任何方式预填充核心数据?](http://stackoverflow.com/questions/2230354/any-way-to-pre-populate-core-data) – Daniel 2012-08-14 19:19:02

回答

0

你可以存储你喜欢的,文本文件的Plist等,甚至在数据库中(大概源码)“种子数据”的任何方式。

然后,当启动您的应用程序时,检查数据是否已存在于您的核心数据存储中。如果没有,将文件导入到数据库中。

您也可以预先配置数据库并将其复制到应用程序文档目录以使其可写。这是一个更为复杂的方法,因为每当您的种子数据或模型发生变化时,您都必须重新生成此种子数据库。

+0

感谢Mundi, 所以,如果我理解,如果我不创建一个sqlite数据库为例,我可以创建第一次启动核心数据库? 我们如何检查核心数据中是否存在一定范围的数据? – Bobyblanco 2012-08-14 12:26:47

+0

这很简单。只需做一个快速获取,看看你是否得到任何结果。 – Mundi 2012-08-14 14:37:22

0

在我的应用程序中,我有一个数据库,我只用它来阅读(不写),我将它包含在我的发布包中。然后,我更新AppDelegate-> persistentStoreCoordinator方法,以指向我的数据库的正确位置。

如果我需要写入数据库,那么在访问它之前我需要将它移动到Documents目录。并且对AppDelegate-> persistentStoreCoordinator的更改将不再需要。