CloudKit 私人数据库中的订阅
CloudKit subscriptions in the private database
我有一个应用程序,我想为其添加使用 CloudKit 将数据备份到 iCloud 的可能性。
"backup" 部分似乎工作正常(我的记录在私有数据库中,因为它们是......好吧,私有的)。
现在我想使用 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 是否存在问题?
这应该有效。私有数据库支持非区域订阅(基于查询的订阅)。您是否在 AppDelegate 中添加了接收通知的代码?
我有一个应用程序,我想为其添加使用 CloudKit 将数据备份到 iCloud 的可能性。 "backup" 部分似乎工作正常(我的记录在私有数据库中,因为它们是......好吧,私有的)。
现在我想使用 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 是否存在问题?
这应该有效。私有数据库支持非区域订阅(基于查询的订阅)。您是否在 AppDelegate 中添加了接收通知的代码?