Core data 新项目新型号NSPersistentDocument此NSPersistentStoreCoordinator没有持久存储

Core data 新项目新型号NSPersistentDocument此NSPersistentStoreCoordinator没有持久存储,core-data,nspersistentdocument,nspersistentstore,Core Data,Nspersistentdocument,Nspersistentstore,我已经搜索和谷歌搜索了几个小时。我做了一个简单的项目来处理核心数据和绑定。它向模型中添加了一个实体,它将不再工作。每当我尝试向新文档添加数据时,我都会得到“此NSPersistentStoreCoordinator没有永久存储,它无法执行保存操作”。我听从了我能找到的每一条建议,但运气不佳 最后,我创建了一个新项目(基于文档的NSPersistentDocument),并从头创建了一个新模型。在我第一次运行该项目之前,我确保模型是完美的 在WindowControllerIDloadNib中:项

我已经搜索和谷歌搜索了几个小时。我做了一个简单的项目来处理核心数据和绑定。它向模型中添加了一个实体,它将不再工作。每当我尝试向新文档添加数据时,我都会得到“此NSPersistentStoreCoordinator没有永久存储,它无法执行保存操作”。我听从了我能找到的每一条建议,但运气不佳

最后,我创建了一个新项目(基于文档的NSPersistentDocument),并从头创建了一个新模型。在我第一次运行该项目之前,我确保模型是完美的

在WindowControllerIDloadNib中:项目调用一个方法来添加数据。在addData例程之前,我记录ManagedObjectContext和ManagedObjectModel。他们都不是零

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

有人对此有什么新想法吗

编辑:这可能是因为新的无标题文档从未保存过吗?如果是这样的话,你如何避免这种情况?你能保存一份没有标题的文件吗?你真的想吗


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

正如我在上面的评论中所指出的,至少在Mountain Lion中,在保存上下文之前,您必须至少保存文档一次。我做了一些实验,我更改的少量数据由autosave保存,而不保存上下文。我已将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();
    }
}

正如我在上面的评论中指出的,至少在Mountain Lion中,在保存上下文之前,您必须至少保存文档一次。我做了一些实验,我更改的少量数据由autosave保存,而不保存上下文。我已将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();
    }
}

好吧,那是因为文档从未保存过。我做了一个小实验。我向托管对象上下文添加了一些对象,但没有保存它。这一切都很好地出现在桌子上。然后我保存了文件并添加了更多数据,这次保存了上下文。上下文保存得很好。因此,我想在文档至少保存一次之前,您无法保存上下文。好吧,这是因为文档从未保存过。我做了一个小实验。我向托管对象上下文添加了一些对象,但没有保存它。这一切都很好地出现在桌子上。然后我保存了文件并添加了更多数据,这次保存了上下文。上下文保存得很好。因此,我猜在文档至少保存一次之前,您无法保存上下文。