不要将Realm对象映射到Realm表

时间:2016-04-04 14:49:55

标签: ios swift realm

基本上我的问题是我想定义一个领域对象(RealmSwift.Object子类),我不希望它出现在Realm数据库中,指示Realm跳过这个。

例如:

我想在私有pod中实现一个同步逻辑,其中包含一个动态的对象列表,这些对象都是一个名为SyncableObject的对象的子类。

我有两个课程,我注册到我的同步模块(ConcreteClassAConcreteClassB),如SyncModule.register([ConcreteClassA.self, ConcreteClassB.self])

现在,Realm检测到我有3个RealmSwift.Object子类并创建了3个不同的表。

我想要一个解决方案来指示Realm,而不是为SyncableObject(中间对象)类创建表,比如重写类函数或类似的东西。

3 个答案:

答案 0 :(得分:2)

You'll want to override +[RLMObject shouldIncludeInDefaultSchema]. From Realm's source:

// Returns whether the class is included in the default set of classes persisted in a Realm.
+ (BOOL)shouldIncludeInDefaultSchema;

答案 1 :(得分:0)

以下是modela = Repo.get(ModelA, 1) |> Repo.preload(:modelb) |> Repo.preload(modelb: :modelc) 中的答案:

Swift

答案 2 :(得分:0)

通过升级以前的解决方案,我认为这样做可以不包含基础对象并且包含子类:

var totalNumber = totalSmalls + totalMediums + totalLarges;