【问题标题】:How should my data be stored? - Swift我的数据应该如何存储? - 斯威夫特
【发布时间】:2018-07-27 14:44:06
【问题描述】:

也许这是一个非常基本的问题,但我一直在努力寻找合适的答案。我的应用程序将包含一个虚构人物列表。每个角色都有一个名字、发布年份、唯一的 ID 号和配件/武器。

用户将无法编辑、添加或删除字符。将有大约 1500 个条目。每个 Table View Cell 都会声明角色的名称,当单击该角色时,它将转换为包含所有信息的 View Controller。

我的问题是如何将这些信息放入我的应用程序中,然后可用于填充表格视图?我尝试使用可编码和可解码,但这大大减慢了我的应用程序。我考虑将信息添加到 plist 中,但我仍然不知道这是否是最好的方法。

【问题讨论】:

    标签: ios


    【解决方案1】:

    我建议core-date,苹果已经改进了很多, 如果今天有 1500 个条目,那么不久的将来可能有 3000 个条目?

    对我来说,优势之一是谓词, 你也可以将你的核心数据与你的 tableview 链接起来:)

    【讨论】:

    • 听起来像这样可以!我的所有信息都在电子表格中。将其传输到 Core Data 的最佳方式是什么?
    • 如果您的应用有网络服务,请在首次启动时检索并加载它,否则,这是一个解决方案:stackoverflow.com/a/11543825/7722280
    【解决方案2】:

    Core Data 是一个选项,就像 Realm 这样的持久存储框架。这两者的优点是查询的可能性,如果您对 w 谓词感到满意,Core Data 可能会更好。两者的缺点是在您更改数据模型时处理迁移麻烦。

    在您的情况下,如果您只是以只读方式显示此信息并且不需要强大的查询、排序功能,那么您可以从包中的 JSON 文件加载此数据。

    【讨论】:

      【解决方案3】:

      您可以创建自定义 JSON 并使用它。但是@zeck 建议如果您在应用程序中包含一个数据库组件,它会更好。这样做有多种原因。

      1. 可扩展性:您的数据可能会随着时间的推移而增加
      2. 灵活性:您的数据格式可以改变
      3. 易读易写:您可能需要更新数据

      名单还在继续。根据您的要求,有多种数据库解决方案可用。虽然核心数据是一个非常强大的平台领域,但 Firebase 类型的数据库解决方案为您提供了更多的灵活性和功能。

      【讨论】:

        【解决方案4】:

        使用 core-data。Core Data 为您管理保存和撤消功能。它有一个持久存储,可以跟踪更改,并且可以在任意次数自动刷新到磁盘。 Core Data 和相关类提供了将实体放入 UITableViews 的简单方法,例如 NSFetchedResultsController

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-22
          • 2017-03-24
          • 2021-07-05
          • 2021-05-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-08
          相关资源
          最近更新 更多