CloudKit订阅错误:公共数据库中不允许使用Metasync订阅

时间:2016-11-09 04:45:45

标签: ios cloudkit

尝试订阅公共数据库更改时出现此错误:

  

CKError:“部分失败”(2/1011); “无法修改一些   订阅“; uuid = ...;容器ID =”...“;部分错误:{     allpublic-changes = CKError:“无效参数”(12/2006);服务器   message =“公共数据库中不允许使用Metasync订阅”

let subscription = CKDatabaseSubscription(subscriptionID: "allpublic-changes")

let notificationInfo = CKNotificationInfo()
notificationInfo.shouldSendContentAvailable = true
subscription.notificationInfo = notificationInfo

let operation = CKModifySubscriptionsOperation(subscriptionsToSave: [subscription], subscriptionIDsToDelete: [])
    operation.modifySubscriptionsCompletionBlock = { [weak self] (savedSubscriptions:[CKSubscription]?, deletedSubscriptionIDs:[String]?, error:Error?) in

        guard error == nil else{

            print("modifySubscriptionsCompletionBlock error: \(error!)")
            return
        }

        ...
    }

operation.qualityOfService = .utility
CKContainer.default().publicCloudDatabase.add(operation)

Google搜索无法获得此错误消息的任何结果。还有其他人遇到过吗?

iOS 10,在设备上。

修改
删除了一些阻止显示整个错误消息的字符。

如果我在私有数据库上执行相同操作,则没有问题。

1 个答案:

答案 0 :(得分:1)

如错误所示,公共数据库中不支持

CKDatabaseSubscriptions。对于公共数据库,您将需要使用CKQuerySubscription代替