我设法在Apples CloudKit中保存,更改和删除记录。我甚至收到订阅的通知,我不知道的是,我如何列出当前用户的所有订阅。
到目前为止,这是我的代码:
let operation = CKFetchSubscriptionsOperation()
operation.fetchSubscriptionCompletionBlock = { (d, e) -> Void in
println("got subscription")
if e != nil {
println("Error")
dump(e)
}
dump(d)
}
publicDatabase.addOperation(operation)
我得到的是:
got subscription
Error
- <CKError 0x14db0ed0: "Invalid Arguments" (12)> #0
- 0 key/value pairs
无效参数是什么?我如何获得所有已保存订阅的列表?
答案 0 :(得分:9)
如果您想对订阅做些什么,那么您可以使用以下内容:
var database = CKContainer.defaultContainer().publicCloudDatabase
database.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in
for subscriptionObject in subscriptions {
var subscription: CKSubscription = subscriptionObject as CKSubscription
..
}
}
答案 1 :(得分:2)
我还没有尝试过,但根据docs; fetchAllSubscriptionsOperation()
将获取当前数据库中用户的所有订阅,并将此调用的值分配给fetchSubscriptionCompletionBlock
应该可以正常工作。将以下代码行调整为:
let operation = CKFetchSubscriptionsOperation.fetchAllSubscriptionsOperation()
快速帮助说明
同样,根据文档fetchAllSubscriptionsWithCompletionHandler将获取当前数据库上的所有订阅: