2012-11-19 68 views
1

先決條件: 我有2種方法在網絡API中:實體CoreData:如何在未保存的上下文中保留特定對象並保存其他對象?

  • 返回列表(只是基本信息:姓名,身份證等)
  • 回報約實體詳細信息

要求是僅保存通過處理第二個請求創建的對象(保存到sqlite),並保留非完整對象而不保存。 另外,'main'上下文應該僅包含來自第一個請求的完整對象,而其他任何'temporary'上下文都應該包含所有其他對象。我試過創建NSPersistentStoreCoordinator的兩個實例,並將它們用於不同類型的上下文,但似乎對於一個NSManagedObjectModel只能存在一個協調器(該指針指向相同的地址)。

回答

0

恰好解決了我的問題是創造核心數據堆棧的兩個「叉」的解決方案:

  • 一個默認的配置和mainContext
  • 相同NSManagedObjectModel的第二(新實例,新 NSPersistentStore(inMemory)和新的NSPersistenStoreCoordinator)
1

如果我正確理解你,那麼我認爲你最好的選擇是隻有在你確定你希望它保留在覈心數據存儲中時才創建一個託管對象。您可能需要非託管對象的另一層包含數據的「非全」實體

(這會是這樣的Data Transfer Objects從Java EE編程。)

+0

感謝您的好建議,我已經想過這個解決方案,但仍然想知道是否可以在CoreData層 –

0

不能不加區別地從內保存同樣的MOC。保存MOC通常會保存所有內容。

因此,您可以使用從未保存的單獨MOC,然後在準備保存時將這些對象「移動」到主MOC。