2010-11-25 79 views
6

在我的iPhone应用程序中,我有大量的数据,即大约1000页的文本。将数据存储在plist或Sqlite数据库中会更好吗?

我应该怎么做来保存它们?

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

其中哪个会证明效率更高?

请帮助和建议。

在此先感谢。

+1

http://stackoverflow.com/questions/1090391/plist-or-sqlite – Rhapsody 2010-11-25 11:39:26

回答

8

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

+0

谢谢,这使得它很容易决定使用。我从来没有把它解释得很清楚,你是否希望将所有数据一次加载到内存中。 – RachelC 2012-03-19 17:44:41

1

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

对于你在做什么,我会使用sqlite3或核心数据存储。

1

pList实际上只是一个xml文件,所以优点(如人和计算机易于读取)和xml(存储/检索效率)的缺点都适用。

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

1

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

5

取决于如何和你要存储的数据是什么:

使用SQLite如果:

  1. 数据需要被访问的只有部分
  2. 反复更新
  3. 数据本身在字节方面很大

否则使用plist!

在你的情况,我会推荐使用SQLite 3或coredata。

0

属性列表

甲plist中仅仅是其可含有常见的数据类型,例如字符串,数字,数组和字典嵌套键 - 值对的列表。

优点

  • 简单的理解。
  • 易于使用。

缺点

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

SQLite的

直到CoreData来了,这是为了读取和写入iPhone应用程序数据的流行方式。如果你是一个Web开发人员,这不是什么新鲜事。

优点

  • 不同的Plist,你不必将整个数据库加载前面。 这使得SQLite更适合具有大量数据的应用程序。
  • 比的Plist的切片和切块的数据更好。

缺点比的Plist

陡峭的学习曲线。 可能会很繁琐的工作。

核心数据

其新的,令人兴奋的,它可能是大多数开发商会从这里使用上了。

我没有花足够的时间与CoreData来概括它;查看教程(下面)了解更多信息。

优点

  • 几乎所有的SQLite的一个不太很多的麻烦(苹果确实 很多肮脏的工作,为您)的利益。

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

缺点比的Plist

  • 陡峭的学习曲线。
  • 杀手:只适用于iPhone OS> 3.0。它的杀手如果你的市场主要由iPod Touch用户组成(他们必须支付升级费用)。
相关问题