1

我一直在搜索 stackoverflow 和谷歌搜索几个小时。我做了一个简单的项目来处理 Core Data 和绑定。它在模型中添加了一个实体,但它不再工作了。每当我尝试将数据添加到新文档时,我都会收到“此 NSPersistentStoreCoordinator 没有持久存储它无法执行保存操作”。我遵循了我能找到的每一条建议,但没有运气。

最后,我制作了一个新项目(基于 NSPersistentDocument),并从头开始制作了一个新模型。在我第一次运行项目之前,我确保模型是完美的。

在WindowControllerDidLoadNib中:项目调用方法添加数据。在 addData 例程之前,我记录了 ManagedObjectContext 和 ManagedObjectModel。它们都不是零。

我仍然得到这个 %$&#@! 错误。

有没有人对此有任何新的想法?

编辑:这可能是因为从未保存过新的无标题文档吗?如果是这样,你如何解决这个问题?您可以保存无标题的文档吗?你真的想要吗?

不久前我在文件导入时遇到了类似的问题。由于我拥有完全控制权,我命名并保存了文档,然后我能够保存上下文。

4

1 回答 1

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();
    }
}
于 2012-08-27T14:10:12.780 回答