2

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

数据与 coredata 一起存储。我试图用一个按钮导入数据。点击后,将先存储在json格式的txt文件中的数据存储到sqllite文件中。

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

谢谢。

4

1 回答 1

1

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

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

要在后台导入数据,您可以使用新的 iOS 5 API for Core Data 或按照 Marcus Zarra 的importing-and-displaying-large-data-sets-in-core-data/教程进行操作。

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

希望有帮助。

编辑

在应用程序启动时导入数据对用户不友好。

为什么不?

所以我试图将数据 - db文件放入存档并将其发送到应用商店。这样,我想知道是否可以在测试期间获得db文件,即导入数据完成,初始数据可以接受。并将此测试数据库文件放入存档并发布到应用商店。所以用户不需要首先导入数据。只需使用测试数据的副本

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

我建议您创建一个虚拟项目,因为当我需要创建一个 prepolutade 数据库时,这是我个人的做法。这使您可以保持更清洁的项目。但是您也可以在实际项目中填充该数据库。如果您按照第一种方式,您可以简单地将 sql 文件移动到您的应用程序的应用程序目录中,然后让核心数据读取它。

于 2012-07-03T12:48:21.373 回答