Я тестирую три iDevices. Устройство 1 активирует уведомление об изменении подписки CKS.Сбросить значение значка CKNotificationInfo только для текущего устройства
Устройство 2 и 3 получает уведомление и количество жетонов увеличивается до 1.
я кодированной сбросить номер жетона до 0 каждый раз, когда приложение доходит до переднего плана, как показано ниже. (В applicationDidBecomeActive :)
CKModifyBadgeOperation *badgeResetOperation = [[CKModifyBadgeOperation alloc] initWithBadgeValue:0];
[badgeResetOperation setModifyBadgeCompletionBlock:^(NSError * operationError) {
if (!operationError) {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
}];
[[CKContainer defaultContainer] addOperation:badgeResetOperation];
Если пользователь отключит мое приложение на устройстве 2, код выше будет выполнен. Это работает хорошо. Номер значка сбрасывается на 0. Но проблема в том, что номер значка на устройстве 3 также становится 0 одновременно, хотя я не использовал свое приложение на устройстве 3.
Надеюсь, что устройство 3 останется с увеличенным номером значка так как пользователь не нажал.
Справочник по API говорит: «Этот рабочий объект может обновить значок для текущего устройства или всех устройств пользователя».
https://developer.apple.com/reference/cloudkit/ckmodifybadgeoperation?language=objc
Я считаю, что это означает, что есть способ сбросить только одно устройство, я хочу.
Пожалуйста, кто-нибудь поможет мне, как это сделать.
Я понял механизм, однако, я думаю, что есть способ установить номер значка для каждого устройства, даже если они зарегистрированы в той же учетной записи iCloud. Поскольку в Справочнике API говорится: «Этот объект операции может обновить значок для« ТЕКУЩЕЕ УСТРОЙСТВО ИЛИ »для всех устройств пользователя. –