CK订阅错误iOS10

Posted

技术标签:

【中文标题】CK订阅错误iOS10【英文标题】:CKSubscription error iOS10 【发布时间】:2016-07-18 20:23:42 【问题描述】:

我的订阅在 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")
       
)

奇怪的是会议订阅被保存了,而大学的订阅却没有。我已经仔细检查了这些名称,它们在仪表板上都是正确的。除此之外,我没有在我的手机上收到任何通知......

【问题讨论】:

遇到同样的问题,你找到解决办法了吗? 【参考方案1】:

在网上其他地方找到,您可以尝试重置您的开发环境。就我而言,我尝试使用的谓词未设置为可查询。在您定义记录类型的地方打勾。它工作一天而不是另一天的原因可能是由于从开发转向生产。那时您被要求优化索引,并且可能在此处删除了对给定谓词进行搜索的能力。无论如何,对我来说似乎就是这样。

【讨论】:

以上是关于CK订阅错误iOS10的主要内容,如果未能解决你的问题,请参考以下文章

CK订阅不起作用

Intermec CK30 BarcodeReader 错误

Swift 3.0 CloudKit fetchDatabaseChangesCompletionBlock 错误

GraphQL 订阅引发跨源错误

向 iOS 测试设备发送推送通知时出现 PHP 错误

推送订阅错误未触发捕获