【发布时间】:2011-06-12 16:26:06
【问题描述】:
我正在开发一个类似于 RSS 新闻阅读器的应用程序。我需要一些机制来在本地存储解析的 XML。我尝试使用 Plist,但随着应用程序复杂性的增加,它很快变得非常复杂。
我想知道对于经常需要向设备读取/写入数据的应用程序来说,存储数据的最佳方法是什么?
【问题讨论】:
标签: iphone objective-c core-data
我正在开发一个类似于 RSS 新闻阅读器的应用程序。我需要一些机制来在本地存储解析的 XML。我尝试使用 Plist,但随着应用程序复杂性的增加,它很快变得非常复杂。
我想知道对于经常需要向设备读取/写入数据的应用程序来说,存储数据的最佳方法是什么?
【问题讨论】:
标签: iphone objective-c core-data
Plist 应该用于简单且有限的数据需求,这些需求有些静态。例如,它们在 PickerViews 中表现出色。 SQLite 和 CoreData 提供真正的数据访问和操作,如果数据在变化,数据完整性。数据模型可以规范化,实体之间可以保持动态关系。此外,可以使用关系连接执行复杂的查询。
我已经发布了我使用 SQLite 的应用程序,虽然更多的是因为 iOS SDK(前核心数据),但标准 SQL 语法使工作量减少了。
我的最新应用程序 SureSafe Home Inventory 完全使用 CoreData。 CoreData 生成并使用 SQLite 数据库。 Core Data 是我在早期应用程序中必须编写的 SQLite 代码之上的一层。虽然最初的学习曲线可能有点困难,但值得改变!!我花了大约 2 个月的时间阅读所有内容并使用 Apple 示例代码变得精通一些。但它解决了良好的数据库编码带来的诸多难题。甚至还有数据库模型版本控制,因此如果您以后有升级,您可以添加新的数据库字段并迁移现有的客户数据。
冗长...但是如果您是新开始,请使用 CoreData。我与 Apple 没有任何关系。
史蒂夫·S。
【讨论】:
我发现 CoreData 和 SQLite 的使用都相当简单,同时考虑到您所暗示的复杂类型。根据您要存储的内容,一个会比另一个更好。对于你正在做的事情,我猜 SQLite 可能是最好的。有关两者之间的进一步讨论,请参阅以下问题:
【讨论】:
使用 plist 实际上是您提到的 3 中最简单的形式。如果您打算存储大量数据,我建议您使用 plist,而不是 CoreData 和 SQlite。
或者,您可以将 XML 文件下载到您的 Documents 目录并进行相应的解析。
【讨论】: