2016-10-26 12 views
0

私は、サードパーティに販売される静的ライブラリであるSDKを開発中です。この静的ライブラリは、データストアとしてRelamを使用します。Relamの複数のインスタンスを維持

私のクライアントにも彼のアプリにRelamを使ったデータストアがあるというシナリオを考えています。自分のSDKを組み込んでいるため、データストアを変更/移行する必要はありません。

Relamを使用する場合、複数のデータストア/インスタンスを使用できますか?

この状況を処理する他の方法はありますか?

+0

Relamのドキュメントhttps://realm.io/docs/objc/latest/#realm-configurationを参照していました。別の構成でこれを解決できますか? – rustylepord

答えて

2

私は2つの部分でこれをお答えします:

パート1 - あなたは内部ライブラリーでレルムを使用している、とあなたがレルムの使用がかもしれないと心配している場合は、コードのアーキテクチャ

Realmを使用している場合はユーザーのコードに流出するため、これを軽減する方法があります。

RLMRealmConfigurationを使用すると、大部分のRealm実装を適切に分離することができます。 fileURLプロパティを使用すると、Realmファイルが保存される場所を明示的に指定できます。objectClassesプロパティでは、自分のRLMObjectクラスのみが保存されることを明示的に定義できます。

これはテストが必要な場合もありますが、それとは逆のこともあります。 RealmはObjective-Cリフレクションを使用して、デフォルトですべてRLMObjectクラスを追加します。そのため、ユーザが設定にobjectClassesも指定しない限り、ライブラリのモデルオブジェクトのスキーマがRealmファイルに表示されることがあります。これは無害ですが、ユーザーにとっては不思議に思えるかもしれません。

パート2 - 流通

それは1つの静的バイナリに同じフレームワークの2つのコピーを持っているのは素晴らしいではありません。特に、ユーザーがあなたのライブラリにあるものよりも新しいバージョンのRealmを使用し始めることが考えられる場合、したがって、私はRealmをライブラリの動的なフレームワークの依存関係として保つことをお勧めします。ライブラリとユーザのコードの両方が同じコードベースをターゲットにすることができます。

関連する問題