Я создаю два CKDatabaseSubscription
, один для privateCloudDatabase
и один для sharedCloudDatabase
следующим образом:
// Subscription to private database //
CKDatabaseSubscription *privateSubscription = [[CKDatabaseSubscription alloc] initWithSubscriptionID:@"checkPrivateDatabaseChanges"];
CKNotificationInfo *privateNotificationInfo = [[CKNotificationInfo alloc] init];
privateNotificationInfo.shouldSendContentAvailable = true;
privateNotificationInfo.alertBody = @"private database subscription";
privateSubscription.notificationInfo = privateNotificationInfo;
CKModifySubscriptionsOperation *privateSubscriptionModify = [[CKModifySubscriptionsOperation alloc] initWithSubscriptionsToSave:[NSArray arrayWithObject:privateSubscription] subscriptionIDsToDelete:nil];
[[CKContainer defaultContainer].privateCloudDatabase addOperation:privateSubscriptionModify];
//
// Subscription to Shared database //
CKDatabaseSubscription *sharedSubscription = [[CKDatabaseSubscription alloc] initWithSubscriptionID:@"checkSharedDatabase"];
CKNotificationInfo *sharedNotificationInfo = [[CKNotificationInfo alloc] init];
sharedNotificationInfo.shouldSendContentAvailable = true;
sharedNotificationInfo.alertBody = @"shared database subscription";
sharedSubscription.notificationInfo = sharedNotificationInfo;
CKModifySubscriptionsOperation *sharedSubscriptionModify = [[CKModifySubscriptionsOperation alloc] initWithSubscriptionsToSave:[NSArray arrayWithObject:sharedSubscription] subscriptionIDsToDelete:nil];
[[CKContainer defaultContainer].sharedCloudDatabase addOperation:sharedSubscriptionModify];
//
Все выглядит нормально, и я получаю уведомления об изменениях, но даже с этимиподписки, удаленные из кода и удаленные из панели мониторинга cloudkit, по-прежнему отправляют уведомления.
Infact, старая тестовая подписка, которая была удалена более недели назад, все еще отправляет уведомление с тестовым предупреждением.Я не хочу переустанавливать контейнер CloudKit, но может ли это быть единственным способом правильного сброса подписок?