我在ios应用程序中导入数据时遇到问题。
数据与coredata一起存储。我试图用按钮导入数据。单击后,首先以JSON格式存储在txt文件中的数据将存储在sqllite文件中。
我的问题是,导入如此大量的数据非常慢,用户点击按钮或等待导入初始数据并不友好。有没有更好的方法来导入数据?
感谢。
答案 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文件移动到应用程序的应用程序目录中,然后说出核心数据即可读取。