如何使用 CloudKit 指定在哪个核心数据配置上创建新记录
How to specify on which Core Data Configuration to create a new record using CloudKit
假设我有一个使用 CloudKit + 核心数据同步的应用程序。
我的用例是:
- 向我的所有用户提供相同的只读数据(一种可以修改的基线数据只能由管理员)
- 每个用户都可以写入其私人数据。
为此:
我的实体是:“Entity1”和“Entity2”。
我的配置是:“Config1”和“Config2”。两者都有 entity1 和 entity2 并且都是“usedWithCloudKit”.
在我的 coreDataStack 中,我有 2 个描述。第一个用于 Config1,第二个用于 Config2,具有“databaseScope = .public
”
通过这样做,如果用户在应用程序中保存了一些东西,该记录将出现在私有数据库中。
如果我通过 iCloud 仪表板手动向 public 数据库添加内容,用户将获取这些内容。
到目前为止一切顺利。
现在,如果我是管理员,我如何指定我的保存将转到 public 数据库而不是私人数据库?
我通过以下方式做到了:
assign(_ object: Any, to store: NSPersistentStore)
假设我有一个使用 CloudKit + 核心数据同步的应用程序。
我的用例是:
- 向我的所有用户提供相同的只读数据(一种可以修改的基线数据只能由管理员)
- 每个用户都可以写入其私人数据。
为此:
我的实体是:“Entity1”和“Entity2”。
我的配置是:“Config1”和“Config2”。两者都有 entity1 和 entity2 并且都是“usedWithCloudKit”.
在我的 coreDataStack 中,我有 2 个描述。第一个用于 Config1,第二个用于 Config2,具有“databaseScope = .public
”
通过这样做,如果用户在应用程序中保存了一些东西,该记录将出现在私有数据库中。
如果我通过 iCloud 仪表板手动向 public 数据库添加内容,用户将获取这些内容。
到目前为止一切顺利。
现在,如果我是管理员,我如何指定我的保存将转到 public 数据库而不是私人数据库?
我通过以下方式做到了:
assign(_ object: Any, to store: NSPersistentStore)