Я борюсь со следующей подпиской:
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")
}
}
По сути, когда создается или обновляется новая запись игрока, я регистрирую местоположение пользователя.
Я хочу, чтобы пользователь A был уведомлен через Push, когда пользователь B создает или обновляет свою запись игрока и находится в пределах 10 км.
Я полагаю, что в моем приложении правильно настроены разрешения на отправку (например, пользователю предлагается подтвердить это перед созданием его подпрограммы).
Никаких толчков не приходит. Любые идеи? Я страдаю от какого-то фундаментального заблуждения о CK?