0

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のテーブル定義と一致します。

何が足りないの?

4

1 に答える 1

0

わかりました、それで私はばかです...

他のVCのようにviewDidLoadでMOCを取得していなかったため、デリゲートから正しいMOCを印刷している間、MissionVCでMOCを取得できませんでした。

修理済み。

聞いてくれてありがとう。:)

于 2012-07-09T22:30:23.477 に答える