我想将用户首选项存储在附加到用户公共(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/