我一直在搜索stackoverflow和谷歌搜索几个小时。我做了一个简单的项目来处理Core Data和绑定。它为模型添加了一个实体,它将不再起作用。每当我尝试将数据添加到新文档时,我得到“这个NSPersistentStoreCoordinator没有持久性存储它无法执行保存操作”。我按照我能找到的每一条建议都没有运气。
最后,我创建了一个新项目(基于NSPersistentDocument),我从头开始创建了一个新模型。在我第一次运行项目之前,我确保模型是完美的。
在WindowControllerDidLoadNib中:项目调用添加数据的方法。在addData例程之前,我记录了ManagedObjectContext和ManagedObjectModel。他们俩都没有。
我仍然得到这个%$&#@!错误。
有没有人对此有任何新想法?
编辑:这可能是因为新的无标题文档从未保存过吗?如果是这样,你怎么解决这个问题?你能保存一份无标题的文件吗?你真的想要吗?我在文件导入时遇到了类似的问题。由于我完全控制,我命名并保存了文档,然后我就能保存上下文。
答案 0 :(得分:4)
正如我在上面的评论中指出的那样,至少在Mountain Lion中,您必须至少保存一次文档才能保存上下文。我做了一些实验,我更改的少量数据由自动保存保留,而不保存上下文。我已将saveContext方法更改为以下内容:
- (void)saveContext {
if (![self fileURL]) {
NSLog(@"Can't save context. No file name has been set.");
return;
}
NSError *error = nil;
if (![self.managedObjectContext save:&error]) {
[NSApp presentError:error];
NSLog(@"Error userInfo: %@",[error userInfo]);
abort();
}
}