用coredata导入初始数据的方法

时间:2012-07-03 12:20:24

标签: ios core-data iphonecoredatarecipes

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

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

要在后台导入数据,您可以使用新的iOS 5 API进行核心数据,也可以关注importing-and-displaying-large-data-sets-in-core-data/上的Marcus Zarra教程。

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

希望有所帮助。

修改

  

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

为什么不呢?

  

所以我试图将数据 - 数据库文件放入存档中   将其发送到应用商店。通过这种方式,我想知道我是否能得到   测试期间的db文件,完成导入数据和   初始数据可以接受。并将此测试db文件放入存档中   并在appstore上发布。因此用户无需导入数据   第一。只需使用测试数据的副本

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

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