【问题标题】:Core Data or... SQLite核心数据或... SQLite
【发布时间】:2010-09-04 15:44:54
【问题描述】:

我来自 Ruby on Rails 环境,我真的被那里的 Active Record 宠坏了。我在 iPhone 上使用 sqlite 做了一个小的概念验证项目,我更加意识到我被宠坏了;)

对于下一个应用程序,我考虑使用 Core Data(因为我相信它的工作方式将接近 Active Record)。我的应用程序将为用户提供大量数据以供使用(带有许多相关表),我打算定期更新这些数据(每 2-3 个月)。使用 sqlite 这就像下载 sqlite 文件一样简单,使用 Core Data 也那么简单吗?

【问题讨论】:

    标签: sqlite core-data


    【解决方案1】:

    Core Data 与 Active Data Record 非常相似。主要区别在于 Active Data 从 SQL 存储演变为应用程序对象代码,而 Core Data 从应用程序对象演变为各种存储。更简洁地说,Active Data 在没有 SQL 存储的情况下无法工作,但 Core Data 在没有任何类型的存储的情况下也能正常工作。

    因此,Core Data 的真正优势在于对对象之间的复杂关系进行建模。使用的持久存储类型(如果有的话)在很大程度上是无关紧要的。 Core Data 使得将复杂模型链接到复杂的计算机和人机界面变得非常容易。

    另一方面是您必须维护对象图的完整性,这样您就不能批量导入持久存储。您下载数据、创建托管对象并将它们插入到持久存储中。虽然这看起来既复杂又缓慢,但与下载整个商店相比,无论您是否需要其中的所有数据,它都不是特别重要。

    即使它更复杂,将 Core Data 轻松集成到应用程序的其余部分通常也会带来回报。

    如果您正在考虑编写和维护多个 iOS 应用程序,那么值得您花时间爬上 Core Data 的学习曲线。

    【讨论】:

    • 如果您需要序列化任何对象,CoreData 绝对是您的最佳选择!
    • 您指的是 Active Data 还是 Active Record?
    【解决方案2】:

    SQLite 是一个持久化存储,Core Data 是一个对象图。它们并不完全相同——尽管 Core Data 可以存在于 SQLite 之上。

    实际上,这取决于您要存储多少数据,以及除了写入数据外,您还需要多久查看一次数据。使用 Core Data 的更新过程将比使用 SQLite 困难得多,尤其是在你有大量数据的情况下;但是,对于常见情况(小更新、读取)可能更容易使用,这可以抵消许多这些问题。

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2010-11-25
      • 2013-04-21
      • 2014-09-18
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多