2016-12-21 1 views
1

複数のファイルに格納されたデータを管理することはできますか?レルムはいくつかのファイルにバックアップされていますか?

同じモデルのオブジェクトを含むdata1.realmdata2.realmdata3.realmなどのファイルがいくつかあるとします。これらすべてのファイルのデータにアクセスするユニークなRLMRealmインスタンスを取得することは可能ですか?

そうでない場合は、この状況を処理する最善の方法は何ですか?移行?

+0

つのレルムのインスタンスは、1つの構成に属し、1つの構成は、いずれかに属しファイル。 – EpicPandaForce

答えて

1

独立したレルム間に格納されたデータを管理することは間違いありませんが、自動ではありません。あなたは自分のアプリケーションのロジックでこのデータへのアクセスを管理する必要があります。

RLMRealmインスタンス自体はディスク上の1つのファイルを表し、他のレルムの組み合わせを参照するために動的に作成することはできません。 RLMObjectが親RLMRealmに追加された後は、異なるファイルを表す別のRLMRealmに移動/バックアップすることはできません。

それは最も可能性の高い特定のユースケースに依存しますが、最も簡単な解決策は単純にファイルごとに別々のRLMRealmのインスタンスであなたのオブジェクトを照会するだろう、とNSArrayにそれぞれ1から生じたRLMResultsオブジェクトを配置します。

レルム間でデータを直接共有することはできませんが、グローバルに一意の主キー(たとえばNSUUID)を使用して、異なるレルムのオブジェクト間の関係を示すことができます。

あなたが必要な場合は、レルム間でオブジェクトを移動したい終わるならば、それはRLMObject SのRealmlessのコピーを作成することも可能です:

Dog *savedDog = [[Dog allObjects] firstObject]; 
Dog *copiedDog = [[Dog alloc] initWithValue:savedDog]; 
関連する問題