【问题标题】:Best way to store a large amount of static information in an iOS app?在 iOS 应用程序中存储大量静态信息的最佳方式是什么?
【发布时间】:2011-08-15 16:58:42
【问题描述】:

如果我在使用应用时有大量信息会被随机使用,那么存储和访问这些数据的最佳方式是什么?

该应用程序完全依赖于我拥有的静态文本,并且需要根据用户在应用程序中选择的内容来抓取某些部分并将它们连接起来。

最好在应用程序第一次加载时将其加载到 Core Data 中,然后检查是否每次都加载它?如果是这样,怎么做?

【问题讨论】:

  • 大量信息是来自网络吗?或者来自应用程序中的文件/资源​​?
  • 这里没有足够的信息。
  • 让我举个例子:在英语中,我们有单词的前缀和后缀。假设我有一个包含数千个前缀和另一个后缀的列表,以及另一个仅与选择的前缀和后缀一起使用的单词。关系是一个单词有 0..* 前缀和/或后缀。如果我想获取前缀列表并将它们附加到指定的单词。存储这些的最佳方法是什么。我可以看到如何将这些存储在核心数据中,但这会为每个单词、前缀和后缀创建一个模型对象,这对于一个小型应用程序来说似乎是很多开销。

标签: iphone objective-c core-data


【解决方案1】:

Core Data 的主要关注点不是持久化数据,而是管理包含和操作数据的复杂对象图。该 API 旨在创建模型-视图-设计应用程序的整个模型层。

如果您有很多需要单独逻辑的文本块,或者如果您的应用程序会从大量文本中创建这些块,那么核心数据是一个不错的选择。

如果您只有一个非常基本的文本编辑器,那么可能没有。

【讨论】:

  • 让我举个例子:在英语中,我们有单词的前缀和后缀。假设我有一个包含数千个前缀和另一个后缀的列表,以及另一个仅与选择的前缀和后缀一起使用的单词。关系是一个单词有 0..* 前缀和/或后缀。如果我想获取前缀列表并将它们附加到指定的单词。存储这些的最佳方法是什么。我可以看到如何将这些存储在核心数据中,但这会为每个单词、前缀和后缀创建一个模型对象,这对于一个小型应用程序来说似乎是很多开销。
  • 您需要为每个单词、前缀和后缀使用不同的对象,因为在现实世界中,每个单词、前缀和后缀都是不同的东西,您的数据模型应该反映现实世界的对象。无论您选择哪种方法/API,如果您的应用程序需要区分它们,您最终都必须对每个单词、前缀和后缀进行建模。您不妨使用 Core Data 并获得所有好处。
  • 三实体数据模型不是很复杂。
【解决方案2】:

Core Data 完全不适合您的用例。

将您的文本存储在.strings 文件中并使用NSLocalizedString() 访问它。这将提供一种方便的方式来按键查找文本并使本地化变得简单。

【讨论】:

  • 让我举个例子:在英语中,我们有单词的前缀和后缀。假设我有一个包含数千个前缀和另一个后缀的列表,以及另一个仅与选择的前缀和后缀一起使用的单词。关系是一个单词有 0..* 前缀和/或后缀。如果我想获取前缀列表并将它们附加到指定的单词。存储这些的最佳方法是什么。我可以看到如何将这些存储在核心数据中,但这会为每个单词、前缀和后缀创建一个模型对象,这对于一个小型应用程序来说似乎是很多开销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 2016-09-29
相关资源
最近更新 更多