2016-07-01 13 views
1

Swift Realm docsには、スレッドごとに1度だけlet realm = try! Realm()でRealmを初期化する必要があることが記載されています。レルムを使用している私のプロジェクトのクラスの中の一握りのクラスで一度呼び出すと、パフォーマンス(またはその他の)問題があるかどうか疑問に思っています。レルムオブジェクトへの参照を保持する一種のシングルトンクラスを作る価値がありますか?スレッド内で領域を何度も初期化することに大きな欠点がありますか?

答えて

2

いいえ、それがまったく起こらないようにするための安全対策が既に存在するため、欠点はありません。 Realmインスタンスは、パスに応じてスレッドごとにキャッシュされているため、独自のメカニズムを用意する必要はありません。

が標準ののアクセス権を必要とするすべてのスレッドに少なくとも1つのRealmインスタンスを確実に保持するのに役立ちます。全体的には1つのスレッドに1つのインスタンスがまだ存在する場合、一部のデータを共有できるため、別のスレッドでRealmをインスタンス化するとかなり安いです。 GCDを使用している場合は、どのスレッドがメインスレッドのメインキューのタスクを実行するかを保証するだけです。

関連する問題