2016-04-04 45 views
1

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

例如:

我想要实现在与都从对象的子类对象的动态列表的私人舱同步逻辑,叫SyncableObject

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

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

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

回答

2

您将要覆盖+[RLMObject shouldIncludeInDefaultSchema]。从Realm's source

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

谢谢!这绝对是我一直在寻找的。我正在寻找这个,因为我知道我在某个地方看到了它,但是在我需要时却找不到它。 –

0

下面是Swift答案:

override class func shouldIncludeInDefaultSchema() -> Bool { 
    return false 
} 
0

通过升级以前的解决方案,我想这会做的伎俩不包括基本对象,并收录了子类:

/** 
Do not include SyncableObject into schema, only the subclasses 
*/ 
public override class func shouldIncludeInDefaultSchema() -> Bool { 
    return SyncableObject.className() != self.className() 
}