在 sharedDB cloudkit 中订阅记录更改

Posted

技术标签:

【中文标题】在 sharedDB cloudkit 中订阅记录更改【英文标题】:Subscribing to record changes in sharedDB cloudkit 【发布时间】:2017-04-19 04:42:37 【问题描述】:

似乎CKQuerySubscription 不能用于订阅云套件中的共享数据库更改。 CKDatabaseSubscription 既不工作也不工作 CKSubscription

如何实现订阅共享数据库更改?

很简单。如何获得与我共享的记录更改通知。 我不是记录的所有者。

相关问题在这里:

How to receive cloudkit notifications about changes made on record shared with me?

【问题讨论】:

【参考方案1】:

当数据库与我共享时,我努力使用 CKDatabaseSubscription成功订阅了一段时间。当我是一个分享者时,它工作得很好。我犯的错误是我在两种情况下都使用了相同的订阅 ID。如果要订阅共享数据库,则需要一个唯一的订阅 ID。

【讨论】:

哦,有可能吗?有趣的。我会试试的 嗯...你确定吗?我对共享数据库使用相同的订阅 ID,并且我有双向的后台推送通知。【参考方案2】:

事实证明,在 CloudKit 中无法在区域级别或记录级别订阅共享数据库。参考:https://developer.apple.com/library/content/qa/qa1917/_index.html

Be aware that CKQuerySubscription is not supported in the shared database, and 
CKDatabaseSubscription currently only tracks the changes from custom zones in the private and shared database.

【讨论】:

如果这个答案被接受,为什么它被否决了? 好吧,我不能对自己的答案投反对票。也许这个人因为 Apple/CloudKit Developer 不支持而生气。 这个答案不正确。可以在区域级别订阅共享数据库,因此具有共享数据库的设备将收到记录更改通知。只是无法查询订阅是否已设置。 嗯,最近可能变了?不是说我是对的,但我记得我无法让它工作。不管怎样,还是得试试菲尔的推荐。 @TheBasicMind,如果您可以分享,我很乐意看到有关如何订阅的代码。

以上是关于在 sharedDB cloudkit 中订阅记录更改的主要内容,如果未能解决你的问题,请参考以下文章

如何创建 CloudKit 订阅通知以触发记录属性更新?

Cloudkit 新记录通知

tvOS 中的 CloudKit 订阅

CloudKit 订阅内部服务器错误

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

CloudKit,重新安装应用程序后,如何将我的订阅重置为当前记录状态?