我应该如何在本地存储一堆数据以显示在UITableView上?

时间:2011-08-29 13:18:50

标签: objective-c ios local-database

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

2 个答案:

答案 0 :(得分:3)

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

使用平面文件

这些文件包含您认为最适合存储它的格式的数据。它们对于保留一小部分不需要复杂结构和强大关系组织的文本数据非常有用。

使用Plist文件

属性列表文件已经具有键值结构,如果您的数据很适合这种格式,您可以利用它们。原始数据类型(例如NSDictionaryNSarray)可以轻松地序列化和反序列化为此格式。

NSUserDefaults

中存储键值数据

通常用于存储应用程序设置和其他少量数据,NSUserDefaults对于保存简单数据类型非常有用,而且没有过多的复杂情况。

在SQL数据库中存储信息

当您的数据结构严密且关系密切且您希望避免因时间和性能原因而推出自己的基于文件的数据存储结构时非常有用。 SQL语言是一种用于检索和保存关系信息的强大工具,您可以通过使用SQLite包装来管理实现的复杂性,例如FMDB

使用Core Data

如果您计划持久化和管理复杂的动态对象图,而不必担心如何从存储中自行序列化和反序列化,那么Core Data是您最好的选择。它可以通过多种方式为您提供帮助,从更改跟踪和撤消支持到关系结构维护和迁移。


Here是一篇详细的Oreilly文章,详细解释了大多数这些方法的特殊性,如果你想要对基础知识有一个深刻的理解,那就是一个很好的解读。

答案 1 :(得分:1)

有些方法是......

  1. Core Data
  2. 写信至NSUserDefaults
  3. 写入文件,例如NSDictionary to a plist
  4. 如果您要存储的是一堆字符串,那么在您启动应用程序时,保持简单并使用NSUserDefaults或制作plist文件和load it into an NSDictionary可能是有意义的。如果你有关系和子属性的实际对象,那么我会查看核心数据。