如何在 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 中的属性中删除“值”?