首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudKit订阅不起作用

CloudKit订阅不起作用
EN

Stack Overflow用户
提问于 2016-02-17 11:10:45
回答 1查看 556关注 0票数 0

我正在尝试使用CloudKit和Swift来订阅推送通知。这是我的代码:

应用程序委托:

代码语言:javascript
复制
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    //Push
    let settings = UIUserNotificationSettings(forTypes: .Alert, categories: nil)
    application.registerUserNotificationSettings(settings)
    application.registerForRemoteNotifications()
    if let options: NSDictionary = launchOptions {
        let remoteNotification = options.objectForKey(UIApplicationLaunchOptionsRemoteNotificationKey) as? NSDictionary
        if let notification = remoteNotification {
            self.application(application, didReceiveRemoteNotification: notification as! [NSObject : AnyObject])
        }
    }

    return true

}

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
    let ckNotification = CKNotification(fromRemoteNotificationDictionary: userInfo as! [String : NSObject])
    if ckNotification.notificationType == .Query {
        let queryNotification = ckNotification as! CKQueryNotification
        let recordID = queryNotification.recordID
        let container = CKContainer.defaultContainer()
        let privateDatabase = container.privateCloudDatabase
        privateDatabase.fetchRecordWithID(recordID!) {newRecord, error in
            if error != nil {
                print(error)
            } else {
                NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
                    print(newRecord)
                })
            }
        }
    }
}

创建:

代码语言:javascript
复制
func addNewRecordsSub() {
    let subscription = CKSubscription(recordType: "UserRecords", predicate: predicate, options: .FiresOnRecordCreation)
    let notificationInfo = CKNotificationInfo()
    notificationInfo.alertBody = "OK!"
    notificationInfo.shouldBadge = true
    subscription.notificationInfo = notificationInfo
    let privateDatabase = container.privateCloudDatabase
    privateDatabase.saveSubscription(subscription) { subscription, error in
        if error != nil {
            print(error)
        }

    }
}

启动订阅出现在CloudKit的仪表板中:

但当我加入新记录时什么都不会发生..。只是什么都没有。我漏掉了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 09:01:37

我又一次试图重新设定环境,现在一切都正常.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35455019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档