CoreData:无法修改不可变模型

时间:2011-11-13 11:54:32

标签: ios core-data

这是我的代码

__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

NSArray *entities = [__managedObjectModel entities];
for (NSEntityDescription *entityDesc in entities)
{
    NSLog(@"TWEAK");
    [entityDesc setProperties:[entityDesc properties]];
}

抛出异常'NSInternalInconsistencyException',原因是:'无法修改不可变模型'。上

我不知道为什么?在我的观点中,这应该是可编辑的,不应该吗?

1 个答案:

答案 0 :(得分:2)

官方doc表示在托管对象模型与持久性商店协调员相关联之前,它是可编辑的

因此:

  1. 如果您将代码中的妈妈分配给代码中的psc,则不会在问题中引用,那么就像文档中所描述的那样。
  2. 如果你真的只是运行上面粘贴的代码,这是Apple的一个错误,无论是库还是文档。您应该提交错误报告。
  3. 无论如何,CoreData数据库文件与固定模型相关联,因此通常您不能只调整模型中的实体描述并将其用于保存的CoreData文件。你想通过调整实体描述来实现什么目标?