2010-06-18 41 views
1

我正在開發一個從互聯網上下載數據並從該數據創建對象的iPhone應用程序。可以在設備上創建相同類型的對象。來自Web的對象不應保存在Core Data數據庫中,但應在設備上創建的對象。不保存所有核心數據對象

當我救我用這個標準呼叫:

 NSError *error; 
if (![context save:&error]) 
    NSLog(@"Error %@", [error localizedDescription]); 

有誰知道如何做到這一點?

+0

您的Core Data Entities如何構建?他們是否反映網絡中的物體? – RickiG 2010-06-18 09:02:04

+0

作爲一個例子,我有一個「路線」實體。您可以在設備上創建自己的路線,但您也可以從網絡下載路線。在這兩種情況下,我在我的上下文中插入一個新實體。我應該有兩個上下文來做到這一點? – Peter 2010-06-18 09:07:53

回答

1

,我會說我沒有一直在與核心數據,長期前言本,所以藉此與一粒鹽...

...你需要使用多個網絡路由工作與此同時?如果它一次只有一個,可以將它作爲「上次下載的路線」保存在覈心數據中。當你下載一個新的路由時,加載這個「上次下載的」對象並用新路由覆蓋它的數據。這樣你只保留最近的一個。

如果您設置爲不保存任何網絡路由,我甚至不會將它們包含在您的核心數據上下文中。只需下載它們並直接在應用程序中處理數據 - 我可能會對您的應用程序在這裏的工作方式感到困惑,但如果您不想在商店中保存網絡路線,爲什麼要將它們添加到上下文中?

我能想到的唯一的另一件事情是要有單獨的上下文 - 否則,你必須回去並保存後刪除網頁下載的對象,這將是一個爛攤子。

如果您提供關於數據模型的更多細節以及如何使用數據,也許我可以提供更具體的建議。

2

我會創建一個內存中的持久性存儲並將「瞬態」網頁下載實例分配給此存儲。您想要保存的實例應該分配給磁盤上的持久性存儲。