我正在使用三个 iDevice 进行测试。设备 1 触发 CKSubscription 更改通知。
设备 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
我相信这意味着有一种方法可以只重置我想要的单个设备。
请任何人指导我如何完成它。