CloudKit подписки в частной базе данных
У меня есть приложение, для которого я хочу добавить возможность резервного копирования данных в iCloud с помощью CloudKit. Кажется, что "резервная" часть работает правильно (мои записи находятся в частной базе данных, так как они... ну, частные).
Теперь я хотел бы использовать подписки CKS для синхронизации всех моих устройств с одними и теми же данными. Я попытался реализовать 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!")
}
})
}
До сих пор мне не удавалось вызвать уведомление на моем устройстве.
Я знаю, что вы можете создать подписку на основе зон. Зоны находятся в частной БД, поэтому я предполагаю, что CKSubscription может работать в частной БД. Но я не хотел реализовывать зоны (которые мне не нужны в противном случае).
Вопрос: есть ли проблема с CKSubscription в частной БД на основе запроса?
1 ответ
Это должно работать. Не зональные подписки (подписки на основе запросов) поддерживаются в частных базах данных. Вы добавили код для получения уведомлений в AppDelegate?