1

先决条件:我在网络 API 中有 2 个方法:

  • 返回实体列表(只是基本信息:名称、ID 等)
  • 返回有关实体的详细信息

要求是仅保存通过处理第二个请求(保存到 sqlite)创建的对象,并保留非完整对象而不保存。此外,“主”上下文应仅包含来自第一个请求的完整对象,任何其他“临时”上下文应包含所有其他对象。

我尝试创建 NSPersistentStoreCoordinator 的两个实例并将它们用于不同类型的上下文,但似乎一个 NSManagedObjectModel 只能存在一个协调器(指针指向同一个地址)。

4

3 回答 3

1

如果我对您的理解正确,那么我认为您最好的选择是仅在您确定希望它保留在 Core Data 存储中时才创建托管对象。您可能需要另一层非托管对象来包含“非完整”实体的数据

(这类似于Java EE 编程中的数据传输对象。)

于 2012-11-19T12:43:25.513 回答
0

您不能在同一个 MOC 中不加选择地保存。保存 MOC 总是会保存其中的所有内容。

因此,您可以使用一个从不保存的单独 MOC,然后在它们准备好保存时将这些对象“移动”到主 MOC。

于 2012-11-19T15:23:40.820 回答
0

完全解决我的问题的解决方案是创建核心数据堆栈的两个“分支”:

  • 一个具有默认配置和 mainContext
  • the second (new instance of the same NSManagedObjectModel, new NSPersistentStore (inMemory) and new NSPersistenStoreCoordinator )
于 2012-11-23T15:09:28.520 回答