代码之家  ›  专栏  ›  技术社区  ›  El Tomato

CKQuerySubscription:未能进行订阅

  •  0
  • El Tomato  · 技术社区  · 7 年前

    我有一个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)")
                }
            }))
        }
    }
    

    具有nil通知信息的订阅:CKQuerySubscription:0x7fd7bfca7ec0;;查询订阅:recordType=PrivateRecords,predicate=TRUEPREDICATE,subscriptionOptions=1,subscriptionID=728863F8-3852-4A12-B5C6-F65EC945207A,zoneID=(null)

    我可以根据订阅ID删除订阅。但每次运行此应用时,它都会为我提供不同的ID。事实上,我对一个 应用程序。它有订阅。另外,我在一周前删除了一个订阅类型,看看会发生什么。我真的不知道订阅ID是用来做什么的。

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

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   rmaddy    7 年前

    CKQuerySubscription CKSubscription . 保存订阅之前需要设置的属性之一是 notificationInfo . 消息指出此属性 nil