2016-06-02 10 views
4

私は少数のオブジェクトを作成し、それらをすべて私のUIに表示します。しかし、私はレルム内のオブジェクトの一部だけを保存し、レルムからいくつかの保存されたオブジェクトを削除したいと思っていますが、私はそれらをUIで使い続けたいと思います。オブジェクトを無効化せずにオブジェクトを削除します

しかし、今では領域からオブジェクトを削除して無効にすると、これ以上使用できなくなります。オブジェクトを無効にすることなくオブジェクトを領域から削除する方法はありますか(オブジェクトを再度管理解除する)?

+0

Android(Java)では、オブジェクトのスタンドアロンコピーを作成できます。 'MyEntity copy = realm.copyFromRealm(myEntity);'と同様です。その後、削除する前にコピーを作成してください。スウィフトではこのオプションがありませんか? –

答えて

0

UIからオブジェクトを隠そうとしているようですが、バックグラウンドでオブジェクトを使用しているようです。

  1. objectにブール値のプロパティを追加できます。その隠されている場合は、それを提示しないでください。
  2. オブジェクトは別の場所に保存することもできます。realmファイル、またはローカル配列Objectsだけを保存することができます。
+0

いいえ、私はUIから隠したくありませんが、オブジェクトを無効にすることなくレルムから削除したいので、UIで引き続き使用できます –

0

「論理削除」または「ソフト削除」と呼ばれる方法です。 (Antonymは "物理的削除"または "ハード削除"です)オブジェクトが削除されたことを示すプロパティを追加します。 (deletedのように削除されたことを示すフラグ、またはdeletionDateまたはdeletedAtのような削除日を割り当てることがよくあります)。プロパティを使用して、物理削除ではなく削除されているかどうかを確認します。

+0

フラグを付けてもオブジェクトはまだ領域ファイルの一部になります絶えず成長しないようにそれらを取り除きたい。アプリケーションの開始時に、マークされたすべてのオブジェクトを物理的に削除できますが、これは回避策です –

+0

物理的に削除したいのですが、それでもUIに表示される場合、唯一の方法は2つのモデルに分割されます。 1つはRealmオブジェクト、もう1つはUIの通常のオブジェクトです。 –

+0

このようにしてオブジェクトを永続化したい場合は、UIモデルからレルムオブジェクトモデルにオブジェクトをコピーする必要があります。逆もまた同様です。私の問題は、明らかに、レルムオブジェクトがレルムに追加されることなく(つまり、管理対象外に)存在することができますが、レルムに追加されて再びアンマネージドにすることができないことです。 –

関連する問題