如何使用CloudKit指定在哪个Core Data Configuration上创建新记录

问题描述

假设我有一个使用CloudKit + Core Data sync的应用程序。

我的用例是:

  • 向我的所有用户提供相同的只读数据(一种基线数据,只能由管理员修改
  • 每个用户都可以写入其私人数据。

为此:

我的实体是:“ Entity1 ”和“ Entity2 ”。

我的配置为:“ Config1 ”和“ Config2 ”。两者都有 entity1 entity2 ,并且都是“ usedWithCloudKit ”。

在我的coreDataStack中,我有2个描述。第一个用于Config1,第二个用于Config2,并具有“ databaseScope = .public

这样做,如果用户将某些内容保存到应用中,则记录将显示在私有数据库中。

如果我通过iCloud仪表板手动将某些东西添加到公共数据库中,它将被用户获取

到目前为止一切顺利。

现在,如果我是管理员,如何指定我的SAVE将进入公共数据库而不是私有数据库

解决方法

我设法通过以下方式做到这一点:

assign(_ object: Any,to store: NSPersistentStore)