Core Data を使用する iOS プロジェクトを継承しました。このプロジェクトには8 つの異なるデータ モデルがありますが、プロジェクトがそれほど大きくなく、多数のデータ モデルにエンティティを分割する正当な理由が見当たらないことは言うまでもありません。
Encrypted Core Dataを現在のデータ モデルと永続ストア コーディネーターで使用しようとしていますが、まったく機能しません。すべてのデータ モデルは次のように初期化されます。
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"First"
withExtension:@"momd"];
self.model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
// Coordinator
//NSPersistentStoreCoordinator *psc = [EncryptedStore makeStore: self.model passcode: @"pass"];
[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.model];
NSURL *storeURL = [[[AppDelegate appDelegate] applicationDocumentsDirectory] URLByAppendingPathComponent: @"First.sqlite"];
NSError *error = nil;
[psc addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:nil
error:&error];
NSManagedObjectContextConcurrencyType ccType = NSMainQueueConcurrencyType;
self.context = [[NSManagedObjectContext alloc] initWithConcurrencyType:ccType];
[self.context setPersistentStoreCoordinator:psc];
したがって、すべてのデータ モデルには、独自のマネージド オブジェクト モデルと、独自の永続ストアとコンテキストを持つ永続ストア コーディネーターがあります。
私が見ているのは、暗号化されたコア データ (ECD) が、最初に作成された永続ストアにのみテーブルを作成していることです。私の疑いでは、ECD は単一のコーディネーターに追加された永続ストアのみを処理します。その仮定に基づいて、単一のコーディネーターを作成し、それにいくつかのストアを追加することが可能かどうか疑問に思っています.
私は Core Data についてあまり詳しくありませんが、コーディネーターがマネージド オブジェクト モデルで初期化されているため、それがどのように可能になるかわかりません (これは、エンティティの総数のセットのみを含む特定のデータ モデル ファイルを指します)。事業)。
何か案は?単一のマネージド オブジェクト モデルとコーディネーターを使用するために、すべてのデータ モデルを単一のモデルにマージすることは本当に避けたいと思います (実際にはそうしたいと思いますが、すべてが壊れてしまうと確信しており、実際にそうする必要はありません)。今がその時です)。