2012-07-09 83 views
0

我知道這裏有一百萬個這樣的問題,但這是不同的,我很難過。核心數據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中的表定義相匹配。

我在想什麼?

回答

0

好了,我是一個白癡...

在我viewDidLoad中沒有抓住MOC,因爲我是在其他風險投資,所以當我在打印出從委託正確的MOC,我沒有在Mission VC中處理它。

固定。

感謝收聽。 :)