代码之家  ›  专栏  ›  技术社区  ›  bealex

iPhone上的ORM。比coredata更简单

  •  1
  • bealex  · 技术社区  · 14 年前

    这个问题很简单。我知道有个叫sqlite的人。还有核心数据。但我需要一些介于两者之间的东西。比sqlite api更面向对象,比核心数据更简单。

    要点是:

    • 我只需要通过id访问存储的实体,不需要查询。
    • 我需要存储单一类型的项,这意味着如果选择sqlite,我只能使用一个表。
    • 我想要自动对象关系转换。或对象存储(如果存储不是关系存储)。

    我可以使用对象归档,但我必须实现一些东西(nsarchiver)。

    但我想写一些类,并自动获得持久性。这可以通过hibernate/activerecord/core data/etc来实现。

    谢谢。

    4 回复  |  直到 14 年前
        1
  •  1
  •   Brad Larson Code Synthesis    14 年前

    超越 BNRPersistence ,alex指出,我认为您不会找到任何维护对象关系的东西,但比cocoa平台上的核心数据简单。类sqlite的对象包装器 FMDB 仍然需要您在自己的代码中管理关系。

    维护对象之间的关系是一项非常重要的任务,这就是为什么很少看到这些框架。核心数据对很多人来说都是正确的,因此开发人员没有太多的动力去构建苹果解决方案的替代方案。bnrpersistence的创建源于亚伦•希尔勒加斯(aaron hillegass)长期以来对核心数据某些方面的失望,但许多人(比如我)对核心数据的工作方式非常满意。

    你可能还想看看 Core Resource ,一个较新的框架,它围绕核心数据提供一些包装器,以使常见任务更容易执行。

        2
  •  2
  •   Tom Harrington    14 年前

    你在这里所说的一切都与核心数据完全兼容。苹果给了你一个完全符合你所说需求的解决方案,那你为什么要逃避呢?

        3
  •  1
  •   Alex Reynolds    14 年前

    您可能会考虑使用非目标c方法来序列化对象,就像xml或json那样,如果您不想的话,您不必编写序列化代码,因为框架是为您编写的。例如,将对象放入与 NSDictionary (通过包装类或其他)指向另一个记录的 id 键,然后用 json-framework JSONRepresentation 打电话。你可能需要做你自己的关系完整性测试,但是瞧,即时关系数据库。

        4
  •  0
  •   Alex Reynolds    14 年前

    看一看 BNRPersistence .

    推荐文章