2010-05-27 58 views
0

我是一名初學者,在mac os x開發中,並試圖開始使用所有這些。可可核心數據:無法保存在NSTableview中創建的項目

這是我的問題:我創建了一個基於非文檔的可可應用,使用核心數據作爲存儲。我已經爲xdatamodel添加了一個實體和屬性。在IB中,我創建了一個NSArrayController並將其正確鏈接。我創建了一個綁定到nsarraycontroller的nstableview。接下來我使用「add:」方法添加了一個鏈接到nsarraycontroller的按鈕。

當我嘗試它時,我可以添加和編輯表中的項目。

問題出在這裏:核心數據應該自動保存所有內容,但爲了確保我將菜單中的「保存」按鈕鏈接到appdelegate和「文件所有者」,第一響應者,應用程序......一切皆有可能(包括「save:」和「saveaction:」方法)。

單擊保存時仍然不保存:當我重新啓動被創建(和重命名)的單元已經消失。

此外,我甚至沒有編輯源代碼;這些簡單任務的核心數據應該只需要Interface Builder。

請幫我解決這個問題,我還沒有找到任何線程解決這個問題。

預先感謝您。

回答

0

要保存更改,您必須在託管對象上下文中調用​​。

如果你看一下CoreDataBooks例子,你會看到他們是如何稱呼它爲用戶的結果,按節省:

- (IBAction)saveAction:(id)sender { 

    NSError *error; 
    if (![[self managedObjectContext] save:&error]) { 
     // Update to handle the error appropriately. 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
     abort(); // Fail 
    } 
} 
+0

我不明白,我應該創建一個「managedobjectcontext 「在IB的對象?因爲保存菜單項通過「save:」功能鏈接到所有可能的東西。它仍然不起作用。 謝謝, – 2010-05-31 14:17:57

+0

菜單應該調用一個像我在應用程序的控制器中發佈的操作。看看示例代碼。 – 2010-06-01 01:57:05