SOにはこれらの質問が何百万もあることを私は知っていますが、これは異なり、私は困惑しています。
約12個のエンティティを含むデータモデルがあります。コードは問題なく実行されました。次に、モデルをバージョン管理し、エンティティと関係を追加してから、xdatamodeldファイルの現在のバージョン管理されたデータモデルの設定を更新しました。新しいエンティティにアクセスしようとすると、NSInternalInconsistencyExceptionが発生します。
メインVCでは、コンテキスト、永続ストアコーディネーター、管理対象オブジェクトモデル、およびすべてのエンティティをログに記録します。アクセスしようとしているエンティティを含め、すべてが期待どおりに見えます。
SQLite DBを吹き飛ばし、Core Dataに再作成させて、正しい列タイプでテーブルを表示できるようにしました。
すべてが正しく見えます。
フェッチコードは次のとおりです。
- (void)fetchMissions {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Mission" inManagedObjectContext:self.managedObjectContext];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setEntity:entity];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
missionsArray = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
}
以下からの出力は次のとおりです。
NSLog(@"Entities : %@",[[self.managedObjectContext.persistentStoreCoordinator.managedObjectModel entities] valueForKey:@"name"]);
Entities : (
Character,
CharacterClass,
CharacterCondition,
CharacterObjective,
CharacterPerception,
Condition,
Mission,
Objective,
Perception,
PlayerCharacter,
Scoreboard
)
管理対象オブジェクトモデル全体を次のように印刷すると、Missionエンティティの詳細も表示されます。
NSLog(@"MOM : %@", self.managedObjectContext.persistentStoreCoordinator.managedObjectModel);
エンティティは非常に単純です...3列、2つはテキスト/文字列、1つは整数です。モデルエディタのエンティティの説明は、SQLiteのテーブル定義と一致します。
何が足りないの?