指定 CKDatabaseSubscription's 谓词和选项



所以在IOS 9中可以做到这一点:

let subscription = CKQuerySubscription(recordType: "SomeType", predicate: somePredicate, subscriptionID: someSubscriptionID, options: [.firesOnRecordCreation, .firesOnRecordDeletion])
subscription.notificationInfo = ...
publicDatabase.save(subscription) { (savedSubscription, error) in }

然而,现在Swift 3已经弃用了CKQuerySubscription,建议将CKDatabaseSubscription用于共享数据库。我有以下代码:

let subscription = CKDatabaseSubscription(subscriptionID: someSubscriptionID)
subscription.recordType = "SomeType"
publicDatabase.save(subscription) { (savedSubscription, error) in }

问题是,我看不出如何使用此方法指定谓词和订阅选项。有人请帮忙。

CKQuerySubscription没有被100%否决。但是它的范围改变了

对于公共数据库默认区域&专用数据库默认区域使用CKQuerySubscription获取通知。

共享数据库有两个步骤&专用数据库自定义区域。

步骤1:CKDatabaseSubscription到Private&共享数据库。

第一步将让你的区域添加,区域更新或区域删除通知私人&共享数据库。

步骤2:从共享数据库获取所有自定义区域&专用数据库。并为每个区域创建CKRecordZoneSubscription。

注意:CKQuerySubscription不适用于共享数据库,但它适用于私有数据库自定义区域,您可以在其中添加谓词&通知选项。

因为我们在步骤1中创建了CKDatabaseSubscription。如果在我们从Private&共享数据库。您将收到通知。

如果通知类型为.database,则基于订阅ID从共享或专用数据库获取所有区域。

如果通知类型为.recordZone,则获取区域ID并使用以前保存的服务器更改令牌获取记录更改。

最新更新