2009-08-23 46 views
47

由于CoreData已经可用于OS 3.0中的iPhone,它是否意味着数据持久化的答案并取代所有直接需要的SQLite在iPhone上使用CoreData或SQLite?

还有什么理由仍然使用SQLiteSQLiteCoreData有什么优点/缺点?

回答

59

这是这里一个共同的问题:

总之,核心数据可以极大地简化代码,特别是对于复杂对象模型。你几乎可以免费获得撤销/重做支持。它还提供了一些非常重要的performance benefits,特别是在iPhone上。尽管看起来有点违反直觉,但考虑到框架有多少开销,在大多数情况下,您可以使用Core Data打败手动调整的SQLite的性能。在iPhone上,它在批量提取方面做得非常出色,可以最大限度地减少内存使用量。

正如指出的那样,其中一个缺点是,这会限制您为最终用户提供iPhone OS 3.0。但是,这对我的用户来说并不是什么问题,并且今后只会减少一个问题。

+0

奇怪的是,这些没有在我的搜索中弹出。也许我对“coredata”的搜索有所不同。这篇文章是否应该删除? – Hauke 2009-08-24 08:12:39

2

如果您希望您的应用程序在未运行OS 3.0的iPhone上运行,则必须使用SQLite。但是,使用CoreData(它使用SQLite作为后端,我相信)意味着你不必编写自己的数据库交互代码,这是非常麻烦的事,特别是当你正在进行关系等时。

我使用CoreData自己...

11

这可能是一个小的好处,但SQLite是平台之间有很多更便携,因为核心数据是可可的一部分,和SQLite是纯C.这意味着,如果你例如,想要将应用程序移植到PC上,例如,如果使用纯SQLite,则重写代码的代码会更少。

然后,如果您想使用本地数据库(不一定与任何iPhone应用程序相关)开发任何其他跨平台的平台,那么您将拥有SQLite的一些经验。

+2

这就是我喜欢它的地方......我有一个iPhone应用程序,我正转向Android,数据结构是我不必担心的一件事。 – AndyD273 2010-07-29 14:05:48