如何在 Objective-c 中删除 cksubscription?

Posted

技术标签:

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

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

【问题讨论】:

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

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

【讨论】:

非常感谢罗杰!

以上是关于如何在 Objective-c 中删除 cksubscription?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Objective-C 代码中删除一次性使用的类变量?

Objective-c中如何基于uiswitch ON/OFF案例实现删除和重新调度本地通知

Objective-C/iOS:如何从 CoreData 中的属性中删除“值”?

在objective-c中捏缩放后如何删除顶部和底部空间?

如何使用 Objective-C 从 IOS Cordova 中的设备(本地数据库)中删除图像

如何删除桥头而不出现错误?