在iPhone上使用CoreData或SQLite?
由于CoreData在OS 3.0中已经可用于iPhone,它是否意味着数据持久性的答案,并取代所有直接使用SQLite
?
还有什么理由仍然使用SQLite
? SQLite
和CoreData
什么优点/缺点?
这是一个常见的问题:
- “核心数据与SQLite经验丰富的开发人员”
- “核心数据vs Sqlite和性能…”
- “核心数据vs sqlite3”
- “是值得使用一个简单的SQLite应用程序的核心数据与iPhone上的一个表,没有关系或复杂的子表/视图?
总之,核心数据可以大大简化您的代码,特别是对于复杂的对象模型。 你几乎可以免费获得撤销/重做支持。 它还提供了一些非常显着的性能优势 ,特别是在iPhone上。 尽pipe看起来有些违反直觉,但是考虑到框架有多less开销,在大多数情况下,使用Core Data可以击败手动调整的SQLite的性能。 在iPhone上,它在批量提取方面做得非常好,以尽量减less内存使用量。
正如指出的那样,一个缺点是,这会限制你为最终用户需要iPhone OS 3.0。 但是,这对我的用户来说并不是什么问题,而且只会越来越less。
这可能是一个较小的好处,但SQLite是更便携的平台之间,因为核心数据是Cocoa的一部分,SQLite是纯C.这意味着,如果你想移植你的应用程序到PC,例如,你会在使用纯SQLite的情况下重写的代码更less。
那么如果你想用本地数据库(不一定与任何iPhone应用程序相关)开发任何其他的跨平台的话,那么你就已经有了一些使用SQLite的经验。
如果您希望您的应用程序在不运行OS 3.0的iPhone上运行,则必须使用SQLite。
然而,使用CoreData(使用SQLite作为后端,我相信)意味着你不必编写自己的数据库交互代码,这是一件相当麻烦的事情,特别是当你正在进行关系等时。
我自己使用CoreData …