iPhone上的ORM。比CoreData更简单

时间:2010-05-09 09:29:20

标签: iphone frameworks data-storage

问题很简单。我知道有SQLite。还有核心数据。但我需要介于两者之间。比SQLite API更面向对象,比Core Data更简单。

要点是:

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

我可以使用对象归档,但我必须实现(NSArchiver)。

但是我想写一些类并自动获得持久性。因为它可以用Hibernate / ActiveRecord / Core Data /等完成。

感谢。

4 个答案:

答案 0 :(得分:2)

您在此处所说的所有内容都与Core Data完全兼容。 Apple正在为您提供完全符合您所述需求的解决方案,那么您为什么要避免它呢?

答案 1 :(得分:1)

超越BNRPersistence,Alex指出,我认为你不会找到任何维护对象关系的东西,但比Cocoa平台上的Core Data更简单。像FMDB这样的SQLite对象包装器仍然需要您在自己的代码中管理关系。

维护对象之间的关系是一项非常重要的任务,这就是为什么你看到这些框架很少的原因。核心数据适用于许多人,因此开发人员没有太多动力去构建Apple解决方案的替代品。 BNRPersistence是由Aaron Hillegass长期以来对Core Data的某些方面感到沮丧而创建的,但很多人(像我一样)对Core Data的工作方式非常满意。

您可能还想查看Core Resource,这是一个较新的框架,它提供了一些围绕Core Data的包装器,使常见任务更容易。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

看看BNRPersistence