【问题标题】:How should I store a bunch of data locally to display on a UITableView?我应该如何在本地存储一堆数据以显示在 UITableView 上?
【发布时间】:2011-08-29 13:18:49
【问题描述】:

我必须显示很多文本,最好是预先格式化或使用 NSString 方法格式化。每行都有一个详细的屏幕。在详细屏幕中,另一个 UITableView 将包含“定义”、“示例”等部分,每个部分只有一行。在这些行中,我将显示跨越多行的文本。我应该将所有文本存储在 SQLite 数据库中,就像每个部分的列一样吗?还有其他方法可以在本地存储数据吗?

【问题讨论】:

标签: objective-c ios local-database


【解决方案1】:

您可以通过多种不同的方式在 iPhone 上存储应用程序数据:

使用平面文件

这些文件包含您认为最好存储格式的数据。它们对于保存不需要复杂结构和强大的关系组织才能有意义的少量文本数据很有用。

使用 Plist 文件

属性列表文件已经有一个键值结构,如果您的数据非常适合这种格式,您可以利用它来发挥自己的优势。原生数据类型,例如 NSDictionaryNSarray 可以轻松地与这种格式进行序列化和反序列化。

NSUserDefaults中存储key-value数据

通常用于存储应用程序设置和其他少量数据,NSUserDefaults 可用于保存简单数据类型而不会过多复杂化。

在 SQL 数据库中存储信息

当您的数据具有很强的结构化和关系性,并且您出于时间和性能原因希望避免滚动您自己的基于文件的数据存储结构时很有用。 SQL 语言是检索和持久化关系信息的强大工具,您可以通过使用 SQLite 的包装器来管理实现的复杂性,例如 FMDB

使用Core Data

如果您打算持久化和管理复杂的动态对象图,而不用担心如何自己从存储中对其进行序列化和反序列化,Core Data 是您的最佳选择。它可以在许多方面为您提供帮助,从更改跟踪和撤消支持到关系结构维护和迁移。


Here 是一篇详细的 Oreilly 文章,更详细地解释了大多数这些方法的特殊性,如果您想深入了解基础知识,这是一本很好的读物。

【讨论】:

    【解决方案2】:

    有些方法是……

    1. Core Data
    2. 写信给NSUserDefaults
    3. 写入文件,例如NSDictionary to a plist

    如果您存储的只是一堆字符串,那么保持简单并在启动应用程序时使用 NSUserDefaults 或创建一个 plist 文件和 load it into an NSDictionary 可能对您来说是有意义的。如果您有具有关系和子属性的实际对象,那么我会研究核心数据。

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 2022-01-16
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多