按区域使用CKSubscription时出错

时间:2014-12-19 17:39:06

标签: ios swift cloudkit

我一直在尝试使用CloudKit,到目前为止它工作正常。但是,我一直很难让基于区域的订阅工作。有没有人参与其中?这里是我尝试的代码:

// MARK: - Subscriptions

func registerSubscriptionByZone(){

    let container = CKContainer(identifier: "iCloud.com.MyDataInCloudKit")
    let database = container.publicCloudDatabase

    let recordZone = CKRecordZone.defaultRecordZone()

    let zoneSubscription = CKSubscription(zoneID: recordZone.zoneID, options:CKSubscriptionOptions.allZeros)
    zoneSubscription.notificationInfo = CKNotificationInfo()
    zoneSubscription.notificationInfo.alertBody = "Change in Zone"
    self.database.saveSubscription(zoneSubscription) {
        subscription, error in
        if error != nil {
            println(error.localizedDescription)
        } else {
            println("subscription saved!")
        }
    }

}

我收到错误:将ID为EB6C9478-0A38-4C01-A473-6C09A57B2E8B的记录订阅保存到服务器时出错:未指定有效区域

1 个答案:

答案 0 :(得分:0)

来自CloudKit设计指南: https://developer.apple.com/library/ios/documentation/General/Conceptual/iCloudDesignGuide/DesigningforCloudKit/DesigningforCloudKit.html

  

区域是排列一组离散记录的有用方法   仅在私人数据库中受支持。区域无法在公共场所创建   数据库中。