【问题标题】:Use CoreData or SQLite on iPhone? [closed]在 iPhone 上使用 CoreData 或 SQLite? [关闭]
【发布时间】:2010-11-22 01:16:30
【问题描述】:

既然 CoreData 在 OS 3.0 中可用于 iPhone,它是否意味着解决数据持久性并取代所有直接SQLite 的需求?

还有什么理由继续使用SQLiteSQLiteCoreData 的优缺点是什么?

【问题讨论】:

    标签: iphone ios sqlite core-data


    【解决方案1】:

    这是一个常见的问题:

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

    正如所指出的,一个缺点是,这限制了您的最终用户需要 iPhone OS 3.0。但是,这对我的用户来说根本不是问题,而且只会越来越少。

    【讨论】:

    • 奇怪的是这些没有在我的搜索中弹出。也许我对“coredata”的搜索有所作为。这篇文章应该被删除吗?
    【解决方案2】:

    这可能是一个较小的好处,但 SQLite 在平台之间的可移植性要高得多,因为 Core Data 是 Cocoa 的一部分,而 SQLite 是纯 C 语言。这意味着,如果您想将应用程序移植到 PC,例如,如果您使用纯 SQLite,您需要重写的代码会更少。

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

    【讨论】:

    • 这就是我喜欢它的地方...我有一个 iPhone 应用程序,我正在迁移到 Android,数据结构是我在学习中不必担心的一件事.
    【解决方案3】:

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

    但是,使用 CoreData(我相信它使用 SQLite 作为后端)意味着您不必编写自己的数据库交互代码,这很麻烦,尤其是在处理关系等时。

    我自己使用 CoreData...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-01
      • 2010-10-26
      • 1970-01-01
      • 2012-08-12
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      相关资源
      最近更新 更多