2010-04-30 57 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

把一個斷點放在那裏,看看你的模型是否爲零。

相關問題