Ich konnte keinen geeigneten und richtigen Weg finden, um zu überprüfen, ob ein CKRecord-Abonnement bereits existiert, und wenn es nicht abonniert ist, um Push-Benachrichtigungen zu erhalten.Überprüfen Sie, ob das Datensatzabonnement bereits in CloudKit existiert.
Ich habe das Abonnement selbst implementiert und es reagiert, aber jedes Mal, wenn ich den richtigen View Controller betrete, versuche ich immer wieder zu abonnieren und der Server antwortet mit einem Fehler, wenn das Abonnement bereits existiert - Meine Frage ist: Is Gibt es eine Möglichkeit, zuerst zu überprüfen, ob das Abonnement vorhanden ist, anstatt zu versuchen, es zu erstellen und auf die Serverantwort zu warten?
Hier ist, wie ich auf ein Rekord bin abonnieren:
// Create the predicate
let predicate = NSPredicate(format: "recordId = %@", RECORD_ID)
// Create a subscription specifying the record type, predicate and notification options
let subscription = CKQuerySubscription(recordType: "Tabs", predicate: predicate, options: [.firesOnRecordUpdate, .firesOnRecordCreation])
// Create a CloudKit notification object
let notificationInfo = CKNotificationInfo()
notificationInfo.alertLocalizationKey = "Updates have been made"
notificationInfo.shouldBadge = true
// Set the subscriptor's notification object to the new CloudKit notification object
subscription.notificationInfo = notificationInfo
// Save the subscription to the database
let publicDatabase = CKContainer.default().publicCloudDatabase
publicDatabase.save(subscription) { (subs, err) in
if let err = err {
print("Failed to save subscription:", err)
return
}
}
Dank