用coredata导入初始数据的方法

我在ios应用程序中导入数据时遇到问题。

数据与coredata一起存储。 我试图用按钮导入数据。 单击后,首先以JSON格式存储在txt文件中的数据将存储在sqllite文件中。

我的问题是,导入这么大量的数据非常慢,用户点击按钮或等待导入初始数据是不友好的。 有更好的方法导入数据吗?

谢谢。

这取决于。 例如,您可以在– applicationDidFinishLaunching:或用户触摸特定按钮时导入数据。

在这两种情况下,我都会在后台导入数据。 这允许您避免UI冻结(如果您有大量数据)并显示一种进度指示器。 也许用户可能更乐意知道发生了什么。

要在后台导入数据,您可以使用新的iOS 5 API进行核心数据,或者关注导入和显示大型数据集核心数据/的 Marcus Zarra教程。

另一种方法可能是从预先填充的数据库开始。 创建一个虚拟项目,在其中填充该db(使用您的JSON文件),然后在您的实际应用程序项目中使用该db。

希望有所帮助。

编辑

在应用开始时导入数据不是用户友好的。

为什么不?

所以我试图将数据 – 数据库文件放入存档并将其发送到app store。 通过这种方式,我想知道我是否可以在测试期间获取db文件,这是完成导入数据并且初始数据是可接受的。 并将此测试db文件放在存档中并在appstore上发布。 因此,用户首先不需要导入数据。 只需使用测试数据的副本即可

我不确定我是否明白这一点。 这就是我对预加载和导入现有数据的意思 。 在将应用程序存储提交到应用程序商店时,需要将db文件随应用程序一起发送。 例如,在应用程序目录中。 您也可以在捆绑包中发货。 但是在这种情况下请注意,因为db文件是只读的(如果你想修改,你需要移动到某个地方)。

我建议你创建一个虚拟项目,因为当我需要创建一个preolutade db时,这是我个人的做事方式。 这使您可以保持项目的清洁。 但您也可以在实际项目中填充该数据库。 如果您按照第一种方式操作,只需将sql文件移动到应用程序的应用程序目录中,然后说出核心数据即可读取。