在iPhone上使用Core Data或SQLite?

时间:2009-08-23 12:39:08

标签: iphone ios sqlite core-data

由于CoreData已经可以在OS 3.0中用于iPhone,它是否可以作为数据持久性的答案,并取代直接SQLite的所有需求?

仍然使用SQLite的原因是什么? SQLiteCoreData的优缺点有哪些?

3 个答案:

答案 0 :(得分:61)

这是一个常见问题:

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

正如所指出的,一个缺点是,这会限制您为最终用户提供iPhone OS 3.0。但是,这对我的用户来说根本不是问题,而且只会变得不那么好。

答案 1 :(得分:11)

这可能是一个较小的好处,但SQLite在平台之间更容易移植,因为Core Data是Cocoa的一部分,而SQLite是纯C.这意味着如果你想将你的应用程序移植到PC,例如,如果你使用纯SQLite,你将有更少的代码重写。

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

答案 2 :(得分:2)

如果您希望您的应用程序在未运行OS 3.0的iPhone上运行,则必须使用SQLite。

然而,使用CoreData(我相信使用SQLite作为后端)意味着您不必编写自己的数据库交互代码,这是非常麻烦的事情,特别是在您进行关系等时。

我自己使用CoreData ......