CKSubscription error iOS10

swift push-notification swift3 xcode8 ios10

192 просмотра

1 ответ

18 Репутация автора

Мои подписки работали правильно с iOS 9, но с тех пор, как я обновился, у меня очень странная ошибка. У меня есть два одинаковых метода подписки, за исключением полей, которыми они управляют. Вот код:

let meetingSubscriptionPredicate = Predicate(format: "Users CONTAINS %@", (id?.recordName)!)

let meetingSubscription = CKQuerySubscription(recordType: "Meetings", predicate: meetingSubscriptionPredicate, options: .firesOnRecordCreation)

let notification = CKNotificationInfo()
notification.alertBody = "Meeting Created!"
notification.shouldBadge = true
notification.accessibilityPerformEscape()
meetingSubscription.notificationInfo = notification

database.save(meetingSubscription) { (result, error) -> Void in
       if error != nil {
             print(error!.localizedDescription)
       }
}

let universitiesSubscriptionPredicate = Predicate(format: "Name = %@", self.UniversityTextField.text!)
let universitiesSubscription = CKQuerySubscription(recordType: "Universities", predicate: universitiesSubscriptionPredicate, options: .firesOnRecordCreation)
let universitiesNotification = CKNotificationInfo()
universitiesNotification.alertBody = "Your university is now on Meet'em!"
universitiesNotification.shouldBadge = true
universitiesNotification.accessibilityPerformEscape() 
universitiesSubscription.notificationInfo = universitiesNotification
database.save(universitiesSubscription, completionHandler: { (saved, error) in
       if error != nil {
             print(error!.localizedDescription)
       }
       else {
             print("University subscription created")
       }
})

Странно то, что подписка на собрание сохраняется, а подписка университета - нет. Я дважды проверил имена, и они все в порядке на панели инструментов. Кроме того, я не получаю никаких уведомлений на свой телефон, когда предполагается ...

Автор: André Meneghetti Источник Размещён: 18.07.2016 08:23

Ответы (1)


0 плюса

1 Репутация автора

В другом месте в Интернете вы можете попробовать сбросить среду разработки. В моем случае предикат, который я пытался использовать, не был настроен на запрос. Это отмечено, когда вы определяете свой тип записи. Причина, по которой он работал один день, а не другой, возможно, связана с переходом от разработки к производству. В то время вас просят оптимизировать индексы, и, возможно, именно здесь упущена возможность поиска по заданному предикату. В любом случае, это было так.

Автор: Tom Lopez Размещён: 03.02.2017 11:56
Вопросы из категории :
32x32