如何在 CloudKit 中存储对共享记录的引用

How do I store a reference to a shared record in CloudKit

我想将用户首选项存储在附加到用户 public 用户记录的 CloudKit 中。首选项可以是私人记录或共享记录(由其他用户共享)。

我可以使用 CKReference 来存储对共享记录的引用吗?如果可以,我如何确定存储的 CKReference 是指私有数据库还是 public 数据库?

目前,如果我将 CKReference 存储到私有记录,那么我可以查询私有数据库以检索记录,但如果我将 CKReference 存储到共享记录,那么我如何确定要查询哪个数据库。

我可以跨数据库使用对 link 的 CKReference 还是必须使用类似记录名称的内容来搜索它并存储单独的引用以指示它是私有记录还是共享记录?

编辑:

好的,阅读文档是值得的,但我花了一段时间才找到我需要的解释,这里是文档的摘录

当您无法使用 CKReference 对象引用记录时,您也可以使用记录 ID。引用仅在数据库的单个区域内有效。要引用当前区域或数据库之外的对象,请将字符串保存在记录的 CKRecordID 和 CKRecordZoneID 对象中。当您想稍后检索记录时,使用这些字符串重新创建记录和区域 ID 对象,以便您可以获取记录。

https://developer.apple.com/documentation/cloudkit/ckrecordid

好的,阅读文档是值得的,但我花了一段时间才找到我需要的解释,这里是文档的摘录

当您无法使用 CKReference 对象引用记录时,您也可以使用记录 ID。引用仅在数据库的单个区域内有效。要引用当前区域或数据库之外的对象,请将字符串保存在记录的 CKRecordID 和 CKRecordZoneID 对象中。当您想稍后检索记录时,使用这些字符串重新创建记录和区域 ID 对象,以便您可以获取记录。

https://developer.apple.com/documentation/cloudkit/ckrecordid