尝试订阅公共数据库更改时出现此错误:
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,在设备上。
修改:
删除了一些阻止显示整个错误消息的字符。
如果我在私有数据库上执行相同操作,则没有问题。
答案 0 :(得分:1)
CKDatabaseSubscriptions。对于公共数据库,您将需要使用CKQuerySubscription代替