如何将PersistentDocuments加载到同一窗口中

时间:2010-04-30 16:53:02

标签: cocoa core-data nsdocument

我想打开NSPersistentDocuments并将它们一次加载到同一个窗口中。我几乎在那里,但错过了一些步骤。希望有人可以帮助我。

我在硬盘上有一些保存的文件。启动时,我的应用程序将打开一个无标题的NSPersistentDocument并创建一个单独的NSWindowController。当我按下按钮从硬盘驱动器上加载文件1时,数据会出现在字段中,但有两件事我看错:

1)更改数据不会使文档变脏 2)选择save更新persistentstore(我知道这是因为当我再次打开文件时看到更改)但是我收到一个错误:+ entityForName:无法找到实体名称'Book'的NSManagedObjectModel

这是我的代码,它位于最初使用无标题文档启动的WindowController中。这段代码并不完美。例如,我知道在加载新文档之前我应该​​处理PendingChanges并保存当前文档。这是试图克服这个障碍的测试代码。

- (IBAction)newBookTwo:(id)sender {
 NSDocumentController *dc = [NSDocumentController sharedDocumentController];
 NSURL *url = [NSURL fileURLWithPath:[@"~/Desktop/File 2.binary" stringByExpandingTildeInPath]];

 NSError *error;
 MainWindowDocument *thisDoc = [dc openDocumentWithContentsOfURL:url display:NO error:&error];

 [self setDocument:thisDoc]; 
 [self setManagedObjectContext:[thisDoc managedObjectContext]];
}

谢谢!

2 个答案:

答案 0 :(得分:0)

假设您有一个名为“Book”或“book”的实体,那么第二个问题很可能是拼写错误的情况。取决于可能触发您的第一个问题的实体图表。

答案 1 :(得分:0)

在那里放一个断点,看看你的模型是否为零。