Ios 清除通知标记而不删除通知

Ios 清除通知标记而不删除通知,ios,objective-c,push-notification,Ios,Objective C,Push Notification,在我的应用程序中,我收到了徽章号设置为1的推送通知。 当应用程序启动时,它应将徽章计数设置为0,因此我使用: [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 它可以工作,但也可以从通知中心删除所有通知。 有没有办法在不删除通知的情况下清除徽章?根据本主题: 设置: [[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];

在我的应用程序中,我收到了徽章号设置为1的推送通知。 当应用程序启动时,它应将徽章计数设置为0,因此我使用:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
它可以工作,但也可以从通知中心删除所有通知。

有没有办法在不删除通知的情况下清除徽章?

根据本主题:

设置:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];

应该这样做。

使用iOS9直接将badge设置为负值仍然可以清除通知。要实现此目的,必须使用负badgenumber激发空UILocalNotification

let ln = UILocalNotification()
ln.applicationIconBadgeNumber = -1
UIApplication.sharedApplication().presentLocalNotificationNow(ln)

@对于ios 9+您需要设置0而不是-1,您需要添加版本条件

    if #available(iOS 9.0, *) {
        UIApplication.shared.applicationIconBadgeNumber = 0
    }else{
        UIApplication.sharedApplication().applicationIconBadgeNumber = -1
    }

检查这一点,它可以工作,但它是一个黑客,苹果可能会在未来的iOS版本处理这个问题。这在iOS 9中工作,但在iOS 10和11中不再工作。这正在我的代码上工作,我也在寻找这个解决方案。谢谢@kiransarvaiya0,但0将删除我不想查看的所有通知