我应该如何在本地存储一堆数据以显示在 UITableView 上?
我必须显示大量文本,最好是预先格式化或使用 NSString 方法格式化的文本。每行都会有一个详细的屏幕。在详细屏幕中,另一个 UITableView 将包含“定义”、“示例”等部分,每个部分只有一行。在这些行中,我将显示跨多行的文本。我应该将所有文本存储在 SQLite 数据库中,就像每个部分的一列一样吗?还有其他方法可以在本地存储数据吗?
I have to display a lot of text preferably pre-formatted or formatted with NSString methods. Each row will have a detailed screen. In the detailed screen another UITableView will have sections for lets say "Definition", "Examples" etc each with only one row. In these rows I will be displaying the text, which spans multiple lines. Should I store all the text in a SQLite database like a column for each section? Are there other ways to store data locally?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以通过多种不同的方式在 iPhone 上存储应用程序数据:
使用平面文件
这些文件包含您认为最适合存储的格式的数据。它们对于持久保存少量文本数据非常有用,这些数据不需要复杂的结构和强大的关系组织即可有意义。
使用 Plist 文件
属性列表文件已经有一个键值结构,如果您的数据非常适合这种格式,您就可以利用它来发挥自己的优势。原生数据类型(例如 NSDictionary 和 NSarray)可以轻松地与此格式进行序列化和反序列化。
在 NSUserDefaults 中存储键值数据
NSUserDefaults 通常用于存储应用程序设置和其他少量数据,可用于保存简单的数据类型,而不会产生过多的复杂性。
在 SQL 数据库中存储信息
当您的数据具有强结构化和相关性,并且由于时间和性能原因而希望避免滚动自己的基于文件的数据存储结构时,此功能非常有用。 SQL 语言是用于检索和保存关系信息的强大工具,您可以通过使用 SQLite 的包装器来管理实现的复杂性,例如 FMDB。
使用核心数据
和管理一个复杂的动态对象图,而不用担心如何自己从存储中序列化和反序列化它,那么 Core Data 是您最好的选择。它可以在很多方面为您提供帮助,从更改跟踪和撤消支持到关系结构维护和迁移。
这里是一篇详细的 Oreilly 文章,在更详细地介绍了大多数这些方法的特殊性,如果您想对基础知识有深入的了解,那么值得一读。
You have quite a few different ways to store application data on your iPhone:
Using Flat Files
These are files that contain data in the format you decide it would be best to store it. They are useful for persisting small bits of text data that don't require a complicated structure and a strong relational organization in order to make sense.
Using Plist files
Property list files already have a key-value structure in place, that you can use to your advantage if your data lends itself well to this format. Native data types, such as
NSDictionary
andNSarray
can be serialized and deserialized easily to and from this format.Storing key-value data in NSUserDefaults
Typically used to store application settings and other small amount of data, NSUserDefaults are useful for holding simple data types without excessive complications.
Storing Information in an SQL Database
Useful for when your data is strongly structured and relational and you want to avoid rolling your own file-based data storage structure for time and performance reasons. The SQL language is a powerful tool for retrieving and persisting relational information and you can manage the complexity of your implementation by resorting to wrappers around SQLite, such as FMDB.
Using Core Data
If you plan on persisting and managing a complicated, dynamic object graph, without worrying on how to serialize and deserialize it from storage yourself, Core Data is your best bet. It can help you in many ways, from change tracking and undo support to relational structure maintenance and migration.
Here is a detailed Oreilly article explaining in more detail the particularities of most of these methods, a great read if you want to develop a solid understanding of the fundamentals.
有些方法是...
如果您存储的只是一堆字符串,那么您可能会这样做保持简单,只需使用 NSUserDefaults 或制作一个 plist 文件和 将其加载到NSDictionary 当您启动应用程序时。如果您有具有关系和子属性的实际对象,那么我会研究核心数据。
Some methods are...
If all you're storing is a bunch of strings, it might make sense for you to keep it simple and just use NSUserDefaults or make a plist file and load it into an NSDictionary when you start your app. If you have actual objects with relationships and sub properties, then I'd look into core data.