2010-04-30 51 views
0

我想打开NSPersistentDocuments并将它们一次加载到同一个窗口中。我几乎在那里,但缺少一些步骤。希望有人能帮助我。如何将PersistentDocuments加载到同一个窗口中

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

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

这是我的代码最初用无标题文档启动的WindowController。此代码并不完美。例如,我知道我应该在加载新文件之前处理“更改”并保存当前文档。这是测试代码,试图克服这个障碍。

- (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]]; 
} 

谢谢!

回答

0

假设你有一个名为“书”或“书”的实体,那么第二个问题很可能是一个错字交换的情况。取决于可能触发你的第一个问题的实体图。

+0

保存文档后出现错误。我知道这一点,因为当我记录时,变化就在那里。 – 2010-04-30 21:29:42

+0

实际上,它可能会在文档被保存时出现。核心数据偏向于保存数据。即使遇到错误,它也会保存所有内容。在任何情况下,第二个错误肯定是在实体图或者一些调用实体图的代码中。 – TechZen 2010-05-01 18:16:17

0

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

相关问题