首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudKit不会将我的工卡计数重置为0

CloudKit不会将我的工卡计数重置为0
EN

Stack Overflow用户
提问于 2014-08-04 21:40:28
回答 2查看 1.7K关注 0票数 7

我尝试了很多方法,但似乎无法重置来自cloudKit的通知中的徽章计数。有没有其他人遇到过这个问题。下面是我尝试过的:

1)在本地设置工卡计数为0

代码语言:javascript
复制
  application.applicationIconBadgeNumber = 0; (temporarily removes the badge count).

没有运气..。

2)调用服务器清空工卡计数

代码语言:javascript
复制
 CKModifyBadgeOperation *oper = [[CKModifyBadgeOperation alloc] initWithBadgeValue:0];
  [oper start];

没有运气..。

3)拉入所有通知更改并将其标记为已读

代码语言:javascript
复制
NSMutableArray *array = [NSMutableArray array];
CKFetchNotificationChangesOperation *operation = [[CKFetchNotificationChangesOperation alloc] initWithPreviousServerChangeToken:nil];
operation.notificationChangedBlock = ^(CKNotification *notification) {
    [array addObject:notification.notificationID];
};
operation.completionBlock = ^{
        CKMarkNotificationsReadOperation *op = [[CKMarkNotificationsReadOperation alloc] initWithNotificationIDsToMarkRead:array];
        [op start];
};
[operation start];

再一次没有运气..。

如有任何建议,我们将不胜感激!谢谢,克里斯

EN

回答 2

Stack Overflow用户

发布于 2014-09-22 14:33:15

在处理您的通知后,您需要执行CKModifyBadgeOperation

这是我的Swift函数,我在将所有通知标记为已读后调用该函数。我将操作添加到defaultContainer中,而不是启动它-我想知道这有什么不同。

代码语言:javascript
复制
func resetBadgeCounter() {
    let badgeResetOperation = CKModifyBadgeOperation(badgeValue: 0)
    badgeResetOperation.modifyBadgeCompletionBlock = { (error) -> Void in
        if error != nil {
            println("Error resetting badge: \(error)")
        }
        else {
            UIApplication.sharedApplication().applicationIconBadgeNumber = 0
        }
    }
    CKContainer.defaultContainer().addOperation(badgeResetOperation)
}
票数 13
EN

Stack Overflow用户

发布于 2016-02-11 06:46:53

如果没有设置容器,那么徽章和通知操作就会失败。因为您没有使用完成块,所以您没有看到错误(您使用的是默认的NSOperation完成块,它是错误的,并且没有任何错误参数)。查看这些操作的标头,以了解完成块语法。

更好的方法是通过addOperation方法将操作添加到容器,这会在运行操作之前在操作上设置容器。此外,它还在内部队列上运行,这具有额外的优点,它可以防止并发运行多个操作,这可能会导致冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25120070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档