ios - 从应用程序中存储的文本文件中读取数据的最佳方式

标签 ios database swift core-data

在用户可以搜索和显示的应用中保存大量数据的最佳方法是什么?

我的想法是,我可以在我的应用程序中将文件作为支持“.txt”文件,并且应用程序第一次在用户手机上运行时,它们将加载到核心数据中,然后由用户访问

关于这个,我有两个问题:

  • 如何读取不直接位于应用文件系统中的支持“.txt”文件?
  • 我知道如何将项目保存到核心数据中,但是在保存如此大量的数据时有什么我应该考虑的吗?这样做的方法,或其他问题?

如果您有任何其他有效执行此操作的方法,那将很高兴知道。除此之外,我们将不胜感激任何建议。

最佳答案

首先,您当然可以将文本文件读入内存,即使它存储在应用程序的包中。如果要写入文件,只需将文件复制到应用程序的文档目录中即可。

其次,例如,包含制表符分隔数据的文本文件将很容易解析并插入到 Core Data 中。我认为最可行的方法是自己写几个for循环。

第三,您说得对,对于大型数据集,这可能需要一些时间。有几个技巧可以优化核心数据插入;最重要的是确定一个合适的批量大小(通常是 500-1000 条记录)并在处理这么多记录后重复调用save

第四,我建议您在分发应用程序之前将此转换为 Core Data。成功完成后,找到生成的 sqlite 文件并将该文件包含到您的应用程序包而不是文本文件中。第一次运行时,将文件复制到文档目录作为保存 Core Data 持久存储的文件。仅复制文件将非常快,并且不会在首次运行您的应用程序时破坏用户体验。

关于ios - 从应用程序中存储的文本文件中读取数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615775/

相关文章:

ios - StringWithFormat "%.2ld"objc 到 swift

iOS UITableView - 部分内的部分

ruby-on-rails - Rails 迁移 - Mysql2::错误:指定的 key 太长;最大 key 长度为 767 字节

swift - UIImageView 和 UILabel 使用 Swift 在 UITableViewCell 中显示问题

ios - 多个 View Controller 和一个 View Nib

ios - 从 Objective C 中的静态库中剥离符号

mysql - 第 19 行 'PARTITIONS 101 */AUTO_INCREMENT=1' 附近使用的正确语法

database - Etherpad - PostgreSQL 错误 : language "plpgsql" does not exist

swift - 如何使用实例方法作为仅采用 func 或文字闭包的函数的回调

swift - Swift 4.0 中自定义的 UITextField 文本在编辑时重叠