gpt4 book ai didi

ios - CoreData 多个持久存储协调器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:59:15 27 4
gpt4 key购买 nike

我无法完全掌握 CoreData 术语。

我为两个概念上独立的数据集创建了两个 .xcdatamodeld 文件。

一个是缓存我从网上下载的静态数据。
一种是关于用户已写但尚未提交到服务器的临时帖子。

这两个数据集根本不需要相互了解。

我想要一个在我尝试更新任何一个时最不会让我头疼的设置。

我需要两个单独的持久存储协调器吗?还是两个单独的 persistent store?那到底是什么意思呢?

** 编辑

我想 Mundi 建议如下。

1 coordinator --- store1 --- model1
\
\
----- store2 --- model2

我如何在代码中实现它?

我有以下代码(从教程网站复制),结构更像

psc --- model1
\
\
--- store1

而不是

psc --- model1 --- store1

我现有的代码看起来像..

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"CachedURLResponse" withExtension:@"momd"];

_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"test.sqlite"];
NSError *error = nil;
[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]

如何在一个协调器中实现模型的单独存储?

我可以接受 RDMS 世界中每个模型的单独表格。稍后我可以更新表定义,并像拥有两个独立的数据库一样轻松地迁移数据。

我不确定在一个数据库中更新不同的表(模型)有多容易。

最佳答案

我不想深入探讨设置不同商店协调器和上下文的架构复杂性,而是简单地创建两个不同的商店和不同的实体,以确保两个数据集不会相互干扰。

这将满足您“最不头痛”的要求,同时让您使用普通代码。

多店多模型的基本流程如下:

  • 在模型中,将您的实体包含在“配置”中,为两个商店使用不同的名称。
  • 在设置核心数据堆栈时,合并模型
  • 与其将一个持久性存储添加到配置为 nil 的协调器,不如添加两个具有各自配置名称的存储。

关于ios - CoreData 多个持久存储协调器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com