ORM在iPhone上。比凯达塔更简单
-
04-10-2019 - |
题
问题很简单。我知道有sqlite。也有核心数据。但是我需要介于两者之间。比sqlite API更面向对象,比核心数据更简单。
要点是:
- 我需要仅通过ID访问存储的实体。无需查询。
- 我需要存储一种类型的项目,这意味着如果我选择sqlite,我只能使用一个表。
- 我想要自动的对象相关转换。或对象存储,如果存储不相关。
我可以使用对象归档,但是我必须实现事物(nsarchiver)。
但是我想编写某种类并自动获得持久性。可以使用Hibernate/activerecord/Core Data/等来完成。
谢谢。
解决方案
超过 Bnrsteristence, ,亚历克斯(Alex)指出,我认为您不会找到任何维护对象关系的东西,但比可可平台上的核心数据更简单。 Sqlite周围的对象包装器 FMDB 仍然需要您在自己的代码中管理关系。
维持对象之间的关系是一项非平凡的任务,这就是为什么您看到这些框架中的很少的原因。核心数据适合许多人,因此开发人员之间没有太多动力来建立苹果解决方案的替代方案。 Bnrpersistence是由Aaron Hillegass对核心数据的某些方面的长期感到沮丧而产生的,但是许多人(像我这样)对Core Data的执行方式完全满意。
您可能还想看看 核心资源, ,一个较新的框架,可为核心数据提供一些包装器,以使常见任务更加容易。
其他提示
您所说的您想要的一切都与核心数据完全兼容。苹果为您提供了满足您所陈述的需求的解决方案,那么您为什么要避免它呢?
您可以考虑一种非目标-C序列化对象的方法,就像XML或JSON一样,如果您不想,则不必编写序列化代码,因为该框架为您提供了。例如,将您的对象与键值属性配对中 NSDictionary
(通过包装班或其他任何内容)指向另一唱片的 id
键,然后与 JSON-FRAMEWORK' JSONRepresentation
称呼。您可能需要进行自己的关系完整性测试,但是请瞧,即即时关系数据库。
看一眼 BNRPersistence
.