CloudKit从当前用户获取所有订阅

时间:2014-11-29 13:52:21

标签: ios swift subscription cloudkit

我设法在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

无效参数是什么?我如何获得所有已保存订阅的列表?

2 个答案:

答案 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()

快速帮助说明

fetchAllSubscriptionsOperation

同样,根据文档fetchAllSubscriptionsWithCompletionHandler将获取当前数据库上的所有订阅

fetchAllSubscriptionsWithCompletionHandler-help