plist,sqlite3,xml?

Posted

技术标签:

【中文标题】plist,sqlite3,xml?【英文标题】:plist, sqlite3, xml? 【发布时间】:2012-01-31 00:40:32 【问题描述】:

我想知道使用不同数据集的利弊

我有使用以下所有三个数据集的工作代码。

有人从我的服务器中提取了一个 .xml 文件 从应用程序包中访问 SQLite3 数据库的副本(这是一个副本,以便我可以添加、删除和保存更改 从.plist 访问数据。

我的问题是,现在我已经有了一些创建这些数据集并在应用中显示它们的数据的经验,我为什么/什么时候会使用一个而不是另一个?

【问题讨论】:

在这里找到了几个很好的答案:***.com/questions/5785011/… 【参考方案1】:

xml 文件关闭您的服务器:

优点:您可以随时更新 XML 文件以向用户提供新数据,很好发送到其他平台

缺点:需要网络连接,必须将 XML 解析为 Obj-C 对象,在不重写整个文件的情况下无法修改 XML 文件中的一个值,XML 文件需要额外的元数据才能解析为正确的 Obj- C类型

你的 bundle 中的 sqlite 文件:

优点:适用于大型数据集;您可以查询、排序和读取部分数据;您可以一次重写或添加一行;好发到其他平台

缺点:必须将 sqlite 数据转换为 Obj-C 对象(我喜欢 fmdb),以更新您需要将应用提交给 Apple 并获得批准的数据

列表:

优点:适用于小型数据集,易于将 plist 读取到 Obj-C 容器中

缺点:不适合大型数据集(超过 1000 个左右的项目),无法在不重写整个文件的情况下仅更新一个值,难以发送到其他平台,必须将您的应用程序提交给 Apple 并获得批准

注意:

您还可以将文件(任何格式)放入您的捆绑包中,并检查您的服务器是否有更新的版本。

【讨论】:

感谢您的洞察力。关于你的笔记,你知道有人写过关于这种方法的任何地方吗?我很感兴趣。 我不知道任何关于这种方法的文章,但我确信它很常见。不久前,我们在一个项目内部使用它,将版本号传递给 Web 服务器,如果存在更新的版本,则服务器上的 cgi 以 url 响应,否则返回 null。 html5 通过 Web 服务器上的清单文件执行类似的操作。见w3.org/TR/html5/offline.html

以上是关于plist,sqlite3,xml?的主要内容,如果未能解决你的问题,请参考以下文章

持久化存储 --- SQLite3 的使用

iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)

iOS学习笔记--数据存储

iOS开发之数据存储

iOS开发之数据存储

iOSiOS数据存储,应用沙盒,XML,Preference,NSKeyedArchiver归档,SQLite3