modifySubscriptions(saving:deleting:completionHandler:)
Modifies the specified subscriptions and delivers the results to a completion handler.
Declaration
@preconcurrency func modifySubscriptions(saving subscriptionsToSave: [CKSubscription], deleting subscriptionIDsToDelete: [CKSubscription.ID], completionHandler: @escaping @Sendable (Result<(saveResults: [CKSubscription.ID : Result<CKSubscription, any Error>], deleteResults: [CKSubscription.ID : Result<Void, any Error>]), any Error>) -> Void)Parameters
- subscriptionsToSave:
The subscriptions to save.
- subscriptionIDsToDelete:
The identifiers of the subscriptions to permanently delete.
- completionHandler:
The closure to execute after CloudKit processes the changes.
Discussion
The completion handler takes a single Result parameter that contains either a tuple, or an error if the request fails. For example, when the network is unavailable or the device doesn’t have an active iCloud account.
When present, the tuple contains the following named elements:
saveResultsA dictionary of saved subscriptions. The dictionary uses the identifiers of the subscriptions you specify in
subscriptionsToSaveas its keys. The value of each key is a Result that contains either the corresponding modified subscription (as it appears on the server), or an error that describes why CloudKit can’t modify that subscription.deleteResultsA dictionary of deleted subscriptions. The dictionary uses the identifiers you specify in
subscriptionIDsToDeleteas its keys. The value of each key is a Result that contains either Void to indicate a successful deletion, or an error that describes why CloudKit can’t delete that subscription.
For information on a more configurable way to modify subscriptions, see CKModifySubscriptionsOperation.