【发布时间】:2010-11-22 01:16:30
【问题描述】:
既然 CoreData 在 OS 3.0 中可用于 iPhone,它是否意味着解决数据持久性并取代所有直接SQLite 的需求?
还有什么理由继续使用SQLite? SQLite 与 CoreData 的优缺点是什么?
【问题讨论】:
标签: iphone ios sqlite core-data
既然 CoreData 在 OS 3.0 中可用于 iPhone,它是否意味着解决数据持久性并取代所有直接SQLite 的需求?
还有什么理由继续使用SQLite? SQLite 与 CoreData 的优缺点是什么?
【问题讨论】:
标签: iphone ios sqlite core-data
这是一个常见的问题:
总之,Core Data 可以极大地简化您的代码,尤其是对于复杂的对象模型。您几乎可以免费获得撤消/重做支持。它还提供了一些非常重要的performance benefits,尤其是在 iPhone 上。尽管这看起来违反直觉,但考虑到您认为框架有多少开销,在大多数情况下,您可以使用 Core Data 击败手动调整的 SQLite 的性能。在 iPhone 上,它可以很好地批量提取以最小化内存使用量。
正如所指出的,一个缺点是,这限制了您的最终用户需要 iPhone OS 3.0。但是,这对我的用户来说根本不是问题,而且只会越来越少。
【讨论】:
这可能是一个较小的好处,但 SQLite 在平台之间的可移植性要高得多,因为 Core Data 是 Cocoa 的一部分,而 SQLite 是纯 C 语言。这意味着,如果您想将应用程序移植到 PC,例如,如果您使用纯 SQLite,您需要重写的代码会更少。
那么,如果您想使用本地数据库(不一定与任何 iPhone 应用程序相关)开发任何其他跨平台的东西,那么您应该已经有一些 SQLite 经验。
【讨论】:
如果您希望您的应用程序在不运行 OS 3.0 的 iPhone 上运行,则必须使用 SQLite。
但是,使用 CoreData(我相信它使用 SQLite 作为后端)意味着您不必编写自己的数据库交互代码,这很麻烦,尤其是在处理关系等时。
我自己使用 CoreData...
【讨论】: