2016-09-15 3 views
7

Realmでは、オブジェクトを永続化できるようにするには、RealmModelを実装するか、RealmObjectを実装する必要があります。 1つをもう一方の上に使用する利点はありますか?RealmObjectをRealmで拡張する代わりにRealmModelを実装することに利点はありますか?

それはrealm docsで述べているすべてがある:

RealmObject基本クラスがRealmModelインターフェイスを実装し、@RealmClassアノテーションを追加して拡張する代わりに。

RealmObjectで利用可能なすべてのメソッドは、静的メソッドを介して利用可能です。

答えて

2

extending any non-RealmObject classes is not possible even if you're implementing RealmModel and adding @RealmClassが、私の意見では、あなたがちょうどあなたがextends RealmObjectを使用して自由のために自然を取得する代わりrealmObject.isValid()RealmObject.isValid(realmObject)に使うために自分自身を強制することで、追加の複雑さを得ることを考慮。

だから、あなたはRealmObjectに延長するべきです。 implements RealmModelを使用すると、追加のメリットはありません。

+2

現在、 'RealmModel'の唯一の利点は、独自のカスタム' isValid() 'を持つことができることです。 'RealmObject'を拡張すると、自分のクラスでこのようなメソッドを持つことはできません。 –

+0

私は 'isManaged()'と 'isLoaded()'(そして 'deleteFromRealm()')もそうだと思います。 – EpicPandaForce

+0

はい、 'RealmObject'のすべてのメソッドに適用されます。すべてのメソッドは' final'です。 –

関連する問題