ich mit dem folgenden Abonnement habe Schwierigkeiten:Wolkenjunge Abonnement Elende
let predicate = NSPredicate(format: "gc_alias != %@ AND distanceToLocation:fromLocation:(%K,%@) < %f",
self.localPlayer!.alias!,
"location",
self.currentLocation!,
10)
let subscription = CKSubscription(recordType: "Player", predicate: predicate, options: .FiresOnRecordCreation)
subscription.zoneID = nil
let notification = CKNotificationInfo()
notification.alertBody = "Nearby Player within Range!"
notification.soundName = UILocalNotificationDefaultSoundName
subscription.notificationInfo = notification
let container = CKContainer.defaultContainer()
let publicDb = container.publicCloudDatabase
publicDb.saveSubscription(subscription) { (result, error) -> Void in
if error != nil {
print(error!.localizedDescription)
} else {
print("SUBSCRIBED SUCCESS")
print(result)
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "subscribed")
}
}
Grundsätzlich, wenn ein neuer Spieler Datensatz erstellt oder aktualisiert ich log der Standort des Benutzers.
Ich möchte Benutzer A per Push benachrichtigt werden, wenn Benutzer B ihren Player-Datensatz erstellt oder aktualisiert und innerhalb von 10 km ist.
Ich glaube, ich habe die Push-Berechtigungen in meiner App korrekt eingerichtet (Benutzer wird aufgefordert, dies zu bestätigen, bevor ihr Sub erstellt wird, zum Beispiel).
Keine Pushs ankommen. Irgendwelche Ideen? Leide ich an einem grundlegenden CK-Missverständnis?
Könnten Sie fügen Sie den Code in dem Sie die CK-Eintrag erstellen und wo Sie für Benachrichtigungen anmelden? – diegog
distanceToLocation: fromLocation :() gibt Meter zurück, nicht Kilometer. Sie müssen 10000 statt 10 übergeben. – diegog
Diegog FTW! Meter schienen es zu gewinnen! Dazu gibt es im Internet überraschend Fehlinformationen. : | – Genericrich