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

标签 cloudkit ckreference

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

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

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

我可以使用 CKReference 跨数据库链接,还是必须使用记录名称之类的内容来搜索它,并存储一个单独的引用来指示它是私有(private)记录还是共享记录?

编辑:

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

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

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

最佳答案

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

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

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

关于cloudkit - 如何在 CloudKit 中存储对共享记录的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46448374/

相关文章:

ios - CloudKit 查询注销用户

ios - 保存 CKRecord 时的错误处理

android - 将我的开发者帐户 token 用于与 CloudKit Web 服务交互的 Android 用户

ios - 从表中删除引用对象 - Swift

swift - 无法将用户 ID 指定为引用

ios - 无法删除设置为 `.parent` 的 CKRecords

swift - CloudKit - 每次运行相同的查询时,CKQueryOperation 结果都不同

ios - CKReference 的 CloudKit 订阅通知未按预期工作

cloudkit - 在 CloudKit 中创建指向多个 CKRecords 的引用列表

ios - 在 CloudKit 中获取 CKReferences 的最佳实践方法是什么?