2016-06-28 5 views
1

お互いに継承する領域オブジェクトを作成することについて簡単に質問します。RLMObjectを継承する

@interface BaseObject : RLMObject 
@property long commonProp1; 
@property long commonProp2; 
@property long commonProp3; 
@end 

@interface InheritingObject : BaseObject 
@property NSString *name; 
@end 

@interface SecondInheritingObject : BaseObject 
@property NSString *name2; 
@end 

したがって、BaseObjectには、各InheritingObjectが継承するいくつかのプロパティがあります。 2つの継承クラスは、データベースに表示する唯一のクラスです。

レルムにBaseObjectが表示されないようにする良い方法はありますか?

答えて

1

BaseObjectのクラスメソッド+[RLMObject shouldIncludeInDefaultSchema]をオーバーライドしてfalseを返すことができますが、継承されたオーバーライドされたメソッドによって除外されないように、すべてのサブクラスで同じメソッドを再度上書きしてtrueを返す必要があります。 Realm's sourceから

// Returns whether the class is included in the default set of classes persisted in a Realm. 

+ (BOOL)shouldIncludeInDefaultSchema;