【问题标题】:Core Data vs. SQLitePersistentObjects核心数据与 SQLitePersistentObjects
【发布时间】:2010-02-19 01:41:09
【问题描述】:

我正在创建一个 iPhone 应用程序,并尝试在 2 个持久存储解决方案之间进行选择。

核心数据,或SQLitePersistentObjects。基本上,我的应用程序需要的只是一种存储模型对象数组然后再次加载它们以显示在 UITableView 中的方法。它没有什么太复杂的。与简单易用的 SQLitePersistentObjects 相比,Core Data 的学习曲线似乎要高得多。在我的案例中,使用 Core Data 而不是 SQLitePersistentObjects 有什么明显的好处吗?

【问题讨论】:

    标签: iphone cocoa-touch core-data persistent-storage


    【解决方案1】:

    作为 SQLite Persistent Objects 的作者,我说:使用 Core Data。

    当手机上不存在 Core Data 时,我编写了 SQLPO。尽管我为自己使用 SQLPO 所做的事情感到自豪,尽管我确实比 Core Data 更喜欢它的方法(特别是不必维护单独的类文件和数据模型),但 Core Data 底层的引擎要成熟得多,并且投入了更多的工程时间。这就是为什么我在 Core Data 来到 iPhone SDK 时放弃了 SQLPO 开发的原因。

    我还没有做过基准测试,但我猜如果使用得当,Core Data 在几乎所有大容量情况下都会表现得更好。

    SQLPO 的开发速度更快,因为您所做的只是创建头文件,但除非您的数据需求相对较少,否则我建议您最好使用 Core Data。

    【讨论】:

    • Jeff,很遗憾你放弃了它,因为平台真正需要的是一个出色的 ORM,而不是 Core Data。
    【解决方案2】:

    看到这个问题。我对这个问题的回答也适用于你。

    Core Data VS SQL Statement, which one is gd for iphone development?

    【讨论】:

    • 不是因为 SQLitePersistentObjects 是一个 ORM。
    • 这是因为您应该为此使用 Apple 技术,这就是他们编写 Core Data 的原因。值得 OP 花费时间研究 Core Data 并了解该技术。
    • 您的答案将使用裸 SQLite 与使用 Core Data 进行了比较。这是不正确的比较。 SQLPO != 裸 SQLite。我同意研究 Core Data 很好,但不应该立即放弃替代方案。 Core Data 是苹果 API 设计黑暗时刻的一个例子。将它与 Rails 和其他不错的 ORM 中的 ActiveRecord 进行比较......
    【解决方案3】:

    关于我使用 SQLitePersistentObjects 的经验的一些信息。

    最初使用 SQLPO 为 iOS 3.x 开发的应用程序运行良好。易于使用等。 现在我正在将这个应用程序带到 iOS 4 并且事情开始变得奇怪了。

    我现在看到数据库损坏的速度无法预测。

    查看SQLPO代码显示只有一个sqlite3_close语句,当数据库无法打开时调用。

    我计划添加一个方法来显式地关闭数据库并从我的应用程序委托终止和 iOS4 的 didMovetoBackground 方法中调用它。 可能有助于避免 SQLPO 的数据库损坏问题。

    【讨论】:

      【解决方案4】:

      我最近不得不做出同样的决定。我正在存储具有几个属性的简单对象的实例。根据我的研究,我了解到使用 Core Data 将帮助您更好地管理具有多种关系的更复杂的对象。我最终使用 Core Data 只是因为我想了解更多有关它的信息(但对于简单的对象并没有太多的学习曲线)。

      【讨论】:

        【解决方案5】:

        SQLitePersistentObjects aka SQLLite Persistent Objects 与直接使用 SQLite 完全不同。它本身就是一个 ORM。我还没用过,不过想更正一下之前发帖人给出的完全错误的答案。

        我正在认真考虑使用,因为 Core Data 很痛苦。

        见:http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

        【讨论】:

        • 上一个答案?现在,您上面的那个人是编写 SQLPO 的人,但我怀疑这就是您的意思,很可能只是重新排列了答案。你能具体说明吗?
        • 根据日期,我一定是参考了 Marcus S. Zarra 的答案。我意识到使用 Core Data 是福音,但它仍然充满错误和烦人的东西,任何使用过的人都会讨厌,例如 ActiveRecord。没有人想听到这个,但要注意。
        猜你喜欢
        • 2018-01-08
        • 2017-11-24
        • 2013-04-06
        • 2015-10-06
        • 2013-04-21
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2010-12-10
        相关资源
        最近更新 更多