Как удалить 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];

Не забывайте всегда правильно обрабатывать все возможные ошибки.

Другие вопросы по тегам