如何找出与CKShare相关的根记录?

How to find out what root record is related to CKShare?

只是我有一个 CKShare 记录。仅此而已,我需要知道其他根 CKRecord 与它相关。

既然总要有根记录,我现在就需要知道了。但是在初始化程序之外的其他地方看不到 属性。

public convenience init(rootRecord: CKRecord)

有什么想法吗?

您应该使用 CloudKit 操作:CKFetchShareMetadataOperation。此操作使用 CKShare().urls 数组和 returns 对应的 CKShareMetadata? 数组进行初始化。 CKShareMetadata class 包含 rootRecordID: CKRecordID 和其他有趣的属性,如关联的 shareparticipantType: CKShareParticipantTypeparticipantType 可用于判断执行提取的客户端是否是共享的所有者。

它还包含可选的rootRecord: CKRecord?。你可以强制 在添加到队列之前,通过在 CKFetchShareMetadataOperation 操作实例上将 shouldFetchRootRecord 设置为 true 来获取所有根记录。