2012-03-14 10 views
0

コアデータへのSQLiteの移行に関する質問をしばらくお待ちしています。店舗を「読み取り専用」、および「カスタムショップ」:コアデータ:複数のコンテキストを持つ独立した永続ストアと単一のコンテキストを持つ別々の永続ストア

Updating Application to use Core Data from previous double SQLite only persistent store

私は、このアプリケーションの開発を始めている、と現時点では私は私が予測しているという事実による2つの独立したコンテキストを作成することを計画読取り専用カードオブジェクトモデルは将来のリリースで同じままですが、カスタムモデルはおそらく変更されます。このようにして、私はカスタムオブジェクトモデルのバージョンを実際に作成し、同じOLE Read Onlyストアでアプリケーションを出荷し続けるだけです。

これはスマートな方法ですか?もしそうなら、私が見なければならないいくつかのハードルは何ですか?もしそうでなければ、もっと良い選択肢は何でしょうか?

+0

5月かどうかは分かりませんが、最近私は[永続的ストアの分割](http://cocoawithlove.com/2011/06/process-of-writing-ios-application.html)の良い例を見ました。 – rickster

答えて

2

2つのモデルのエンティティが互いに競合しない限り、両方のモデルを同じコンテキストで一緒に使用できます。 +modelByMergingModels:メソッドを使用すると、実行時に2つ以上のモデルから単一のモデルを作成できます。その新しいモデルを使用して永続的なストアコーディネータを初期化し、そのPSCをコンテキストに追加します。

別々の管理オブジェクトコンテキストでコードを正常に動作させることはできますが、コアデータについてはうってつけのことの1つは、正しく設定すると、あなたのためのオブジェクト。読み取り専用データとユーザーデータの両方に単一のコンテキストを使用することは、コードを単純にするための積極的なステップのようです。

+0

「2つのモデルが互いに競合しないようにする」という意味を明確にすることはできますか? – 5StringRyan

+0

@ 5StringRyan私は、両方が同じ名前のエンティティを定義しようとしないことを意味します。あるモデルに 'Product'という名前のエンティティがある場合、他のモデルで同じ名前のエンティティを持つことはおそらく悪い考えです。 – Caleb

+0

'+ modelByMergingModels:'を使用するとライトの移行は機能しません:http://stackoverflow.com/questions/10940545/core-data-lightweight-migrations-and-multiple-core-data-model-files-xcdatamod/13852084# 13852084 –

関連する問題