我有一个应用程序,我想要添加使用CloudKit将数据备份到iCloud的可能性。 “备份”部分似乎正常工作(我的记录在私人数据库中,因为它们......好吧,私人)。私有数据库中的CloudKit订阅
现在我想使用CKSubscriptions来保持我的所有设备与同一数据同步。 我试图实现一个CKSubscription来监视基于查询(不基于区域)的查询创建/更新/删除。
func subscribe() {
let options = CKSubscriptionOptions.FiresOnRecordCreation |
CKSubscriptionOptions.FiresOnRecordDeletion |
CKSubscriptionOptions.FiresOnRecordUpdate
let predicate = NSPredicate(value: true) // get all the records for a given type
let subscription = CKSubscription(recordType: "Stocks",
predicate: predicate, subscriptionID: subscriptionID,
options: options)
subscription.notificationInfo = CKNotificationInfo()
subscription.notificationInfo.alertBody = ""
db.saveSubscription(subscription, completionHandler: {
subscription, error in
if (error != nil) {
println("error subscribing: \(error)")
} else {
println("subscribed!")
}
})
}
到现在为止,我还没有能够触发通知到我的设备。
我知道你可以创建一个基于区域的订阅。区域位于私人数据库中,因此我认为CKSubscriptions可以在私人数据库中工作。 但我不想实施区域(我不需要)。
问题:基于查询,私人数据库中的CKSubscriptions存在问题吗?
更新我的问题:如果在我的选项中,我只有CKSubscriptionOptions.FiresOnRecordCreation,它的工作原理。但是如果我提出另一个选项或者选项的组合,那么它就不再起作用了。 Bug报告和DTS支持问,目前没有任何结果。 –