Как удалить cksubscription в Objective-c?
Извините, но я не могу найти ответ на простом английском языке, или, по крайней мере, каждый ответ, который я вижу, предполагает, что у меня есть определенное количество знаний, которых не должно быть. Мне просто нужно удалить CKSubscription
, Как мне это сделать? Все советы и помощь будут с благодарностью.
1 ответ
Решение
Предполагая, что у вас нет идентификатора подписки для подписки, которую вы хотите удалить, вы должны сначала выбрать все подписки и выяснить идентификатор подписки для подписки, которую вы хотите удалить:
[[[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
}
}];
Затем, теперь, когда у вас есть идентификатор подписки, просто удалите его:
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];
Не забывайте всегда правильно обрабатывать все возможные ошибки.