【问题标题】:How to store a large array of strings如何存储大量字符串
【发布时间】:2018-07-18 17:48:30
【问题描述】:

这是我学习 swift 的第二周。

目前,我正在尝试创建一个生成随机报价的报价应用程序。我将引号存储在一个数组中。到目前为止,该应用程序运行良好,但是,我认为将引号存储在视图控制器文件中效率不高,特别是如果我计划列出 100 多个引号。我在某处看到一条评论,建议将大量字符串存储在数据库或 plist 文件中。我只是想知道是否有人可以建议在数据库或其他东西中存储报价的最佳方法。任何帮助将不胜感激。

【问题讨论】:

  • 是的,大数据不应该每次都保存在本地数组中。如果它是本地的,你可以有一个 json 文件,plist 或使用 coredata。
  • 你的 Qoutes 的结构是什么?
  • 如果它只是一个字符串数组——没有任何额外的复杂性——那么使用 UserDefaults 可能是一个好主意,正如this 答案中提到的那样。
  • 另外,检查this answer 可能对您的情况有用...
  • UserDefaults 对于存储大量数据,尤其是大量静态数据来说是一个非常糟糕的主意。对于真正大量的数据,最好的选择是将它们放入 SQLite 数据库并从中随机查询。这将消除内存空间问题。对于 100 个引号,将它们放入 JSON 文件甚至文本文件并从那里加载它们可能是可以的。

标签: ios arrays swift


【解决方案1】:

如果您只想存储引号而仅此而已,那么数据库或 UserDefaults 将不是一个好的选择。

如果将引号保存在plist文件或JSON文件中会更好。

【讨论】:

  • 感谢您的回答。如果我只想存储两个数组怎么办。第一个用于引用,第二个数组用于存储引用的作者。将两个数组存储在 plist 文件或 JSON 文件中是否理想?
  • @codescholar 我建议您将引用和作者存储在同一个 JSON 文件中:[ { "quote": "To be or not to be", "author": "William Shakespeare" }, { "quote": "To be or not to be", "author": "William Shakespeare" } ]
  • UserDefaults 不是 plist 文件吗?自定义 plist 是否比 UserDefaults 更好?
【解决方案2】:

我真的建议使用Realm Database,而不是在 plist 中这样做。

它比 CoreData 更容易设置,并且提供相同的功能、大量示例和文档。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多