【问题标题】:How do i delete cksubscription in Objective-c?如何在 Objective-c 中删除 cksubscription?
【发布时间】:2016-06-04 22:09:07
【问题描述】:

很抱歉,我找不到简单的英语答案,或者至少我看到的每个答案都假设我有一定的知识量,而这些知识是不应该的。我只需要删除一个CKSubscription。我该怎么做呢?我们将不胜感激所有提示和帮助。

【问题讨论】:

  • CKModifySubscriptionOperation
  • 我在objective-c中找不到示例代码,Apple官方文档似乎没有足够详细地描述它。
  • 糟糕 - 错字。这是CKModifySubscriptionsOperation。这应该可以帮助您找到示例。顺便说一句 - 为什么你需要一个具体的例子?一旦您知道如何使用任何 CloudKit 操作,您就可以使用它们中的任何一个,因为它们基本上都以相同的方式工作。
  • 谢谢!但是我仍然迷路了,因为我在语法方面遇到了很多困难,我实际上会输入哪些代码行?

标签: ios objective-c cloudkit cksubscription


【解决方案1】:

假设您没有要删除的订阅的subscriptionID,您应该首先获取所有订阅并找出您要删除的订阅的subscriptionID:

[[[CKContainer defaultContainer] publicCloudDatabase] fetchAllSubscriptionsWithCompletionHandler:^(NSArray<CKSubscription *> * _Nullable subscriptions, NSError * _Nullable error) {
    if (!error) {
        //do your logic to find out which subscription you want to delete, and get it's subscriptionID
    } else {
        //handle error
    }
}];

那么,既然您有了订阅 ID,只需将其删除:

CKModifySubscriptionsOperation *operation = [[CKModifySubscriptionsOperation alloc] initWithSubscriptionsToSave:nil subscriptionIDsToDelete:YOUR_SUBSCRIPTION_ID];

operation.modifySubscriptionsCompletionBlock = ^(NSArray <CKSubscription *> * __nullable savedSubscriptions, NSArray <NSString *> * __nullable deletedSubscriptionIDs, NSError * __nullable operationError) {
    //handle the results when the operation has completed
};

[[[CKContainer defaultContainer] publicCloudDatabase] addOperation:operation];

不要忘记始终正确处理所有可能的错误。

【讨论】:

  • 非常感谢罗杰!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多