核心数据:具有多个上下文的独立持久性存储与具有单个上下文的独立持久性存储

时间:2012-03-14 17:01:41

标签: objective-c xcode core-data ios5

我前一段时间问过一个关于SQLite迁移到Core Data的问题,并根据我需要有一个“Read Only”商店和一个“自定义商店”给出了保持Persistent Stores分开的答案:

Updating Application to use Core Data from previous double SQLite only persistent store

我正在开始开发这个应用程序,目前我打算创建两个单独的上下文,因为我预见只读卡对象模型在未来的版本中保持不变,而自定义模型可能会更改。这样我只需要对自定义对象模型进行版本控制,并继续使用相同的只读存储区运送应用程序。

这是一个聪明的方法吗?如果是这样,我应该注意哪些障碍?如果没有,那么什么是更好的选择呢?

1 个答案:

答案 0 :(得分:2)

只要两个模型中的实体不相互冲突,您就可以在同一个上下文中同时使用这两个模型。您可以使用+modelByMergingModels:方法在运行时从两个或多个模型创建单个模型。使用该新模型初始化持久性存储协调器,并将该PSC添加到您的上下文中。

我确信你可以使用单独的托管对象上下文使你的代码工作得很好,但是关于Core Data的一个好处是,如果你设置正确,它将管理查找对象的细节为了你。对您的只读数据和用户数据使用单个上下文似乎是保持代码简单的积极步骤。