序章
私の iOS プロジェクトには、SQLite 形式で約 160 MB の Core Data 永続ストアが付属しています。そこには大量のグループ化された情報があり、ユーザーはお気に入りをマークできるはずです。このためには、データベース (少なくともその一部) に書き込み機能が必要です。ただし、もちろん、アプリケーション バンドルに同梱される永続ストアは、設計上読み取り専用です。
ストアに読み書き機能を持たせたい場合は、アプリのドキュメント フォルダなどにコピーする必要があります。データベースの主要部分はとにかく読み取り専用ですが、アプリのサイズが2倍になるため、これを行いたくありません。それはリソースの浪費になります。
NSPersistentStoreCoordinator の複数の永続ストア
これが、2 つの永続ストアを使用することを考えた理由です。1 つ目はバンドル内の大きなもので、2 つ目はドキュメント フォルダー内の小さなもので、大きなストアとの関係を持つ特別な "お気に入り" エンティティを格納します。
この点で何かが可能であることは知っていますが、詳細を見つけることができません。オブジェクト モデルも複数ある場合は、複数のストアのみを使用する必要がありますか? 1 つのオブジェクト モデルを 2 つの永続ストアに「分散」できますか? Core Data Programming docsを参照すると、これを設定する方法に関する実際の参照が見つかりません。また、マーカス・ザラの本は、このトピックを掘り下げていないようです:
NSPersistentStoreCoordinator に複数の NSPersistentStore を追加することができます。これは、複数のファイルに分割されたデータを処理する場合に役立ちます。ただし、この例では、単一のファイルがあります。( Marcus Zarra: 「コア データ - Mac OS X でデータを永続化するための Apple の API」71 ページ)
質問
私が考えていることが Core Data と複数の永続ストアで可能かどうか誰が教えてくれますか? そして、これを達成する方法についてのヒントを提供できますか? このトピックを扱うオンライン/オフラインのリソースも非常に高く評価されています.