【问题标题】:CloudKit fetch all subscriptions from the current userCloudKit 获取当前用户的所有订阅
【发布时间】:2015-01-27 23:03:45
【问题描述】:

我设法保存、更改和删除 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

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

【问题讨论】:

    标签: ios swift subscription cloudkit


    【解决方案1】:

    我还没有尝试过,但根据docs; fetchAllSubscriptionsOperation() 将获得 当前数据库中的用户 的所有订阅,然后将此调用的值分配给 fetchSubscriptionCompletionBlock 应该可以工作。将以下代码行调整为:

    let operation = CKFetchSubscriptionsOperation.fetchAllSubscriptionsOperation()
    

    快速帮助说明

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

    【讨论】:

      【解决方案2】:

      如果你想对你的订阅做一些事情,那么你可以使用这样的东西:

      var database = CKContainer.defaultContainer().publicCloudDatabase
      database.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in
              for subscriptionObject in subscriptions {
                  var subscription: CKSubscription = subscriptionObject as CKSubscription
                  ..
              }
          }
      

      【讨论】:

      • 非常感谢。这些台词拯救了我的一天,埃德温。
      • @EdwinVermeer,你知道如何在 Objective-C 中获取订阅吗?
      • [privateDatabase fetchAllSubscriptionsWithCompletionHandler:^(NSArray *subscriptions, NSError *error) { NSLog(@"Test"); }];
      • 然后循环遍历你现在看到 NSLog 的数组
      • 是获取当前用户的所有订阅还是所有订阅?
      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      相关资源
      最近更新 更多