CloudKit. Проблемы с подписками
Я не совсем понимаю информацию о подписках. У меня есть личная база данных. Есть таблица, на которую я создаю подписку. Если я подписываюсь на два устройства под одной учетной записью iCloud, возникают ошибки: Подписано с ошибкой:
CKError 0x165c6ac0: "Запрос отклонен сервером" (15/2032); сообщение сервера = "подписка является дубликатом 'C6051A24-2DB5-47EA-98D2-7D8786AA6D3B'"; uuid = 48AC7472-006A-4FD7-84A9-DB342C83C199; ID контейнера = "iCloud.com. *. *"
NSPredicate *truePredicate = [NSPredicate predicateWithValue:YES];
CKSubscription *itemSubscription = [[CKSubscription alloc] initWithRecordType:RecordType
predicate:truePredicate
options:CKSubscriptionOptionsFiresOnRecordCreation | CKSubscriptionOptionsFiresOnRecordUpdate];
CKNotificationInfo *notification = [[CKNotificationInfo alloc] init];
notification.shouldSendContentAvailable = YES;
notification.alertLocalizationKey = @"";
notification.shouldBadge = NO;
itemSubscription.notificationInfo = notification;
[self.privateDatabase saveSubscription:itemSubscription completionHandler
Может я что то не так делаю? Что мне нужно сделать, чтобы оба устройства получали уведомления о подписках?
Отредактировано:
Также. Я создаю только одну подписку. Если я использую метод fetchAllSubscriptionWithCompletionhandler, я вижу 3-4 подписки на таблицу. Но это странно, потому что я создаю только один. И когда я получаю уведомление, я вижу больше уведомлений, чем должно быть.
1 ответ
Подписка на базу данных. Поэтому, если вы хотите получать уведомления от нескольких пользователей в базе данных, достаточно создать его один раз. Вы получаете ошибку, потому что вы создаете одну и ту же подписку (один и тот же идентификатор подписки) дважды в одной и той же базе данных. Просто убедитесь, что вы создали его только один раз. Вы можете получить подписку, чтобы проверить, была ли она уже создана или нет. Гарри