0

我正在研究如何处理 CloudKit 共享和数据库订阅,我需要帮助了解 Apple 如何在我们可用的属性和委托方法的情况下一起使用订阅和 CloudKit 共享。

这个线程非常相似,但没有将共享带入等式,并且在功能方面与我设置的有点不同。

设置潜艇是容易的部分。如果没有订阅,请设置一个。如果所有者停止共享,则会调用一个委托方法,因此您可以删除除您自己之外的所有子项。当参与者离开共享时,我的问题就出现了。应该删除与该人关联的订阅,但他们现在无权访问共享数据库来执行此操作。而且我看不到将订阅与参与者 ID 相关联的方法。我能弄清楚如何做到这一点的唯一方法基本上是其他线程中提到的。创建一个新的订阅记录类型,将参与者 ID 索引到订阅 ID。

从概念上讲,我倒退了,并假设每个用户都对自己的潜艇负责。使用新的 recordType 会翻转,因此共享所有者对所有订阅者负责。

这真的是这样做的方法吗?任何使用共享的人都会遇到这种情况,所以我认为应该有某种方法可以在不创建另一个记录类型的情况下处理它?

4

1 回答 1

0

我误解了一些非常基本和重要的东西。出于某种原因,我认为共享数据库的 subs 实际上存在于所有者数据库上,并且当共享停止时,他们将失去对数据库的访问权限并且无法删除自己的 sub。情况并非如此(显然?),因为您只能看到自己的潜艇,而所有者看不到参与者的任何潜艇。

当共享停止时,您将失去对 CKShare 记录的访问权限,但您仍然可以访问共享数据库上的子项。因此,在需要时删除它是微不足道的 - 如果所有者负责,它将更多地参与(正如我上面所想的那样)。

于 2019-05-15T19:06:51.350 回答