将数据存储在plist或Sqlite数据库中更好吗?

时间:2010-11-25 11:34:16

标签: iphone ios4 sqlite plist

在我的iPhone应用程序中,我有大量数据,即大约1000页的文本。

我应该在哪里存储它们?

我应该使用plist还是Sqlite数据库表?

哪一个会被证明更有效率?

请帮助和建议。

先谢谢。

6 个答案:

答案 0 :(得分:8)

对于大量数据,sqlite或coreData更好,因为所有数据都没有加载到内存中以访问一个数据。
使用pList,整个文件在内存中读取。之后,您可以只保留您想要的数据,但它没有进行优化。

答案 1 :(得分:5)

取决于您希望如何存储数据以及存储数据:

使用SQLite if:

  
    
        
  1. 只需部分访问数据
  2.     
  3. 重复更新
  4.     
  5. 数据本身就字节而言很大
  6.        

否则使用plist !!

在你的情况下,我会建议使用SQLite 3或coredata。

答案 2 :(得分:1)

您应该使用plist存储配置设置。

对于你正在做的事情,我会使用sqlite3或核心数据存储。

答案 3 :(得分:1)

pList实际上只是一个xml文件,因此优点(人类和计算机都可以轻松读取)和xml(存储/检索效率)的缺点都适用。

虽然SQLite显然为您提供了SQL的好处。对于大数据,SQLite将是更好的选择

答案 4 :(得分:1)

重要的是您访问它们的方式。如果你是随机或小部分访问的东西,你可以使用像sqlite这样的数据库。如果这是你一次性使用所有粗鲁的东西,一个plist是好的。正如@Benoît所提到的,plists被完全加载到内存中。对于类似书籍的东西,您也可以考虑将页面存储在单独的文件中,从而使用文件系统来管理访问(当然,取决于您打算如何使用它)。

答案 5 :(得分:0)

财产清单

plist只是一个嵌套键值对列表,它可以包含常见的数据类型,如字符串,数字,数组和字典。

<强>赞成

  • 简单易懂。
  • 易于使用。

<强>缺点

无法对它们运行复杂的查询(至少不容易)。 您必须将整个文件读入内存以从中获取任何数据并保存整个文件以修改其中的任何内容。

<强> SQLite的

在CoreData出现之前,这是在iPhone应用程序中读取和写入数据的流行方式。如果您是网络开发人员,这不是什么新鲜事。

<强>赞成

  • 与plists不同,您不必预先加载整个数据库。 这使得SQLite更适合具有大量数据的应用程序。
  • 比切片和切割数据更好。

<强>缺点

比plists更陡峭的学习曲线。 可以使用起来很乏味。

核心数据

它的新功能,令人兴奋的,也许是大多数开发人员从现在开始使用的。

我没有花足够的时间与CoreData进行总结;查看教程(如下)以了解更多相关信息。

<强>赞成

  • 几乎所有SQLite的好处都没那么麻烦(Apple确实如此) 很多肮脏的工作)。

  • 作为Apple的首选方法,它有更多的官方文档和示例代码(似乎其他两种方法的文章和示例代码已经神秘地从Apple的网站上消失了。)

<强>缺点

  • 比plist更陡峭的学习曲线。
  • 杀手:仅适用于iPhone OS&gt; 3.0。如果您的市场主要由iPod Touch用户(必须支付升级费用)组成,那就是它的杀手锏。