ios - CKQuery订阅 : Failing to Make Subscription

标签 ios swift cloudkit

我有一个正在使用 CloudKit 开发的 iOS 应用程序。我正在尝试订阅。

import CloudKit

class HomeViewController: UIViewController {
    override func viewDidLoad() {
        registerSubscription()
    }

    func registerSubscription() {
        let cloudContainer = CKContainer(identifier: "iCloud.com.xxx.XXXXX")
        let privateDB = cloudContainer.privateCloudDatabase
        let predicate = NSPredicate(format: "TRUEPREDICATE") // TRUEPREDICATE: all records of the specified type match the predicate
        let subscription = CKQuerySubscription(recordType: "PrivateRecords", predicate: predicate, options: .firesOnRecordCreation)
        privateDB.save(subscription, completionHandler: ({returnRecord, error in
            if let err = error {
                print("Subscription has failed: \(err.localizedDescription)")
            } else {
                print("Subscription set up successfully")
                print("Subscription ID: \(subscription.subscriptionID)")
            }
        }))
    }
}

而且它会一直出错。错误说明如下。

Subscription with a nil notificationInfo: CKQuerySubscription: 0x7fd7bfca7ec0; ; Query Subscription: recordType=PrivateRecords, predicate=TRUEPREDICATE, subscriptionOptions=1, subscriptionID=728863F8-3852-4A12-B5C6-F65EC945207A, zoneID=(null)

我可以根据订阅 ID 删除订阅。但是每次我运行这个应用程序时它都会给我一个不同的 ID。实际上,我已经对 ma​​cOS 应用程序做了同样的事情。它有一个订阅。此外,我大约一周前删除了一个订阅类型,看看会发生什么。我真的不知道订阅 ID 有什么用。

那么我在订阅时做错了什么?谢谢。

enter image description here

最佳答案

CKQuerySubscriptions 有一个属性 notificationInfo,你需要做的是像下面这样的事情:

let notification = CKSubscription.NotificationInfo()
notification.alertBody = "You have a new message"
notification.shouldSendContentAvailable = true

newSubscription.notificationInfo = notification

关于ios - CKQuery订阅 : Failing to Make Subscription,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52177054/

相关文章:

ios - "devices not paired"的 WatchKit 事件?

ios - 使用 Swift 中的导航 Controller 在 View Controller 中缺少后退按钮

ios - CloudKit 订阅未在 iOS10 上保存

ios - 如何通过 CKFetchNotificationChangesOperation 避免低效的网络数据使用?

ios - 空行和节标题的 Swift TableView 背景

ios - 如何在 iOS 中的折线图(图表)的标签中显示文本

ios - 无法使用类型为 'float2' 的参数列表调用类型为 'CGPoint' 的初始值设定项

ios - 在 App Purchase invalidProductIdentifier 中有 30% 次为什么?

swift - 此颜色属于哪个 View 的 UITableview

ios - 如何在保存数据之前检查用户是否登录到 iCloud