管理CKQuerySubscriptions

时间:2018-03-07 20:27:12

标签: ios swift cloudkit

我想在我正在开发的应用中介绍CloudKit的用法。作为第一步,当某些记录插入公共数据库时,我将其用于处理推送通知。所以在我的应用程序中,我会为每个我想要监控的记录类型创建一个CKQuerySubscription。

我的问题是:续订这些订阅的最佳策略是什么?测试时我注意到我的开发容器搞砸了几次,我不得不重置它以使订阅按照应有的方式运行。 Apple没有在文档中说明任何内容,那么何时应该删除现有订阅并重新创建它?因为随着时间的推移,订阅的通知信息可能会发生变化,我想每次构建号不同时重新创建所有订阅。这是避免弄乱容器生产版本的好方法吗?

2 个答案:

答案 0 :(得分:1)

在我的场景中,我在启动时添加了一个检查以获取所有订阅并验证预期的潜艇是否存在。这样我就可以重置,更换容器甚至处理消失的潜艇(我没有看到潜艇消失,但如果它发生了,我可以优雅地恢复)。

如果您的通知需要更改,这还可以为您提供更新潜艇的位置。取出它们然后根据需要进行清除/替换。

使用这种方法,您无需不断重建潜艇。您将在它们丢失时刷新,或者更新检查逻辑以查找不同的潜艇。

答案 1 :(得分:0)

建议的策略首先是创建自定义记录区域,其次是订阅数据库更改。

了解这一点的最佳资源是WWDC 2016 CloudKit Best Pratices会话。