2012-07-09 80 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中处理它。

固定。

感谢收听。 :)