核心数据NSInternalInconsistencyException(此次不同)

时间:2012-07-09 17:35:50

标签: core-data nsmanagedobject nsmanagedobjectcontext

我知道SO中有一百万个这样的问题,但这是不同的,我很难过。

我有一个包含大约十几个实体的数据模型。代码运行得很好。然后我对模型进行了版本化,添加了一个实体和一个关系,然后在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
)

当我用以下内容打印出整个托管对象模型时,我也会看到Mission实体的详细信息:

NSLog(@"MOM : %@", self.managedObjectContext.persistentStoreCoordinator.managedObjectModel);

实体很简单... 3列,两列是文本/字符串,一个是整数。模型编辑器中的实体描述与SQLite中的表定义匹配。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

好的,所以我是个白痴......

我没有像我在其他VC中那样抓住我的viewDidLoad中的MOC,所以当我从代表中打印出正确的MOC时,我在Mission VC中没有处理它。

固定。

感谢收听。 :)