Do I need to delta fetch CloudKit changes as well as subscriptions?
我正在尝试实现 CloudKit 订阅。以前,我只是在我的应用程序启动时和在我的应用程序的关键点使用
我的设置纯粹使用私有数据库。
我只是想知道,如果我转而使用订阅,是否还需要进行这种类型的获取?从我看到的文档中并不清楚。
我使用
是的,即使你实现了
Apple 将通知描述为"尽力而为",这意味着有时它们不会到达(相信我,有时它们不会到达)。因此,我发现定期获取新更改(例如每隔几分钟)很有用,以防我的应用错过更改通知。
这里是一些关于如何注册对
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | let subscription = CKQuerySubscription(recordType:"Task", predicate: NSPredicate(value: true), subscriptionID:"subscriptionTask", options: [.firesOnRecordCreation, .firesOnRecordUpdate, .firesOnRecordDeletion]) let info = CKNotificationInfo() info.shouldSendContentAvailable = true info.alertBody ="" //This needs to be set to improve notification priority subscription.notificationInfo = info let operation = CKModifySubscriptionsOperation(subscriptionsToSave: [subscription], subscriptionIDsToDelete: nil) operation.modifySubscriptionsCompletionBlock = { subscriptions, subscriptionIDs, error in //... } let container = CKContainer(identifier:"...") container.privateCloudDatabase.add(operation) |
希望对你有帮助。