我知道這裏有一百萬個這樣的問題,但這是不同的,我很難過。核心數據NSInternalInconsistencyException(這次不同)
我有一個數據模型,其中有大約十幾個實體。代碼運行得很好。然後,我對模型進行了版本控制,添加了實體和關係,然後更新了xdatamodeld文件中當前版本化數據模型的設置,並且在嘗試訪問新實體時現在正在獲取NSInternalInconsistencyException。
在我的主要VC中,我記錄了上下文,持久性存儲協調器,管理對象模型和所有實體。一切看起來都如我所料,包括我試圖訪問的實體。
我把SQLite數據庫吹走了,然後讓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
)
我還看到團實體的細節時打印出與整個管理對象模型:
NSLog(@"MOM : %@", self.managedObjectContext.persistentStoreCoordinator.managedObjectModel);
該實體是死的簡單... 3列,兩個是文本/字符串,一個是整數。模型編輯器中的實體描述與SQLite中的表定義相匹配。
我在想什麼?