我有一個應用程序,我想要添加使用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支持問,目前沒有任何結果。 –