拥有多个NSPersistentStoreCoordinators是否有意义?

时间:2011-06-18 04:56:56

标签: iphone ios core-data

3 个答案:

答案 0 :(得分:2)

通常,应用程序只使用一个PersistentStoreCoordinator,并在app delegate中初始化。

有关详细信息和说明,请查看Core Data

上的苹果文档

答案 1 :(得分:2)

我不能老实地想到你想要拥有第二个协调员的原因,除非你在同一个模型上执行一些非常严重的并发,多线程任务。根据您的描述,您可能只需要为某些托管对象创建单独的上下文,或者如果您需要它们完全独立,则可能需要单独的商店。

您几乎不会直接与持久性商店协调员进行交互,因为您的大多数操作都是在上下文级别完成的,然后在您准备好时(通过上下文)通过商店协调员持续存在。

你显然已经完成了自己的研究,所以我不打算告诉你检查文档XYZ(核心数据有很好的文档记录基本级别的东西,但任何稍微高级的东西,你是你自己的),但我的主要观点是因为每个模型都有一个单独的商店协调员可能会增加代码的复杂性,而不是让它更容易管理,这似乎是你在原始问题中的主要动机。

答案 2 :(得分:1)

我没有看到在您的应用中拥有多个NSPersistentStoreCoordinator实例的任何实际技术限制,只要它们都指向磁盘上的唯一位置。

然而,采用这种方法绝对不常见,并且会给您的应用增加许多复杂性,这可能不是必需的。根据您对数据模型的描述,我认为您不需要多个NSPersistentStoreCoordinator。

请务必阅读CoreData编程指南,并知道您需要为每个线程创建一个唯一的NSManagedObjectContext,而不是按照您在问题中描述的NSPersistentStoreCoordinator创建。