我必须显示很多文本,最好是预先格式化或使用 NSString 方法格式化。每行都有一个详细的屏幕。在详细屏幕中,另一个 UITableView 将包含“定义”、“示例”等部分,每个部分只有一行。在这些行中,我将显示跨越多行的文本。我应该将所有文本存储在 SQLite 数据库中,就像每个部分的列一样吗?还有其他方法可以在本地存储数据吗?
2 回答
你有很多不同的方式来在你的 iPhone 上存储应用程序数据:
使用平面文件
这些文件包含您认为最好存储格式的数据。它们对于保存不需要复杂结构和强大的关系组织才能有意义的少量文本数据很有用。
使用 Plist 文件
属性列表文件已经有一个键值结构,如果您的数据适合这种格式,您可以利用它来发挥自己的优势。本机数据类型,例如NSDictionary
和NSarray
可以很容易地序列化和反序列化到这种格式。
在NSUserDefaults中存储键值数据
通常用于存储应用程序设置和其他少量数据,NSUserDefaults 可用于保存简单数据类型而不会产生过多的复杂性。
在 SQL 数据库中存储信息
当您的数据具有很强的结构化和关系性并且您出于时间和性能原因想要避免滚动您自己的基于文件的数据存储结构时很有用。SQL 语言是检索和持久化关系信息的强大工具,您可以通过使用 SQLite 的包装器(例如FMDB )来管理实现的复杂性。
使用核心数据
如果你打算持久化和管理一个复杂的动态对象图,而不用担心如何自己从存储中序列化和反序列化它,Core Data 是你最好的选择。它可以在许多方面为您提供帮助,从更改跟踪和撤消支持到关系结构维护和迁移。
这是一篇详细的 Oreilly 文章,更详细地解释了大多数这些方法的特殊性,如果您想深入了解基础知识,这是一本很好的读物。
有些方法是...
- 核心数据
- 写入NSUserDefaults
- 写入文件,例如将NSDictionary 写入 plist
如果您存储的只是一堆字符串,那么保持简单并仅使用 NSUserDefaults 或制作一个 plist 文件并在启动应用程序时将其加载到 NSDictionary 中可能是有意义的。如果您有具有关系和子属性的实际对象,那么我会研究核心数据。