iOS的本地推送删除不了解决方法

最近在研究苹果推送,当测试本地推送的时候,发现一个问题,就是一旦你添加了一个本地推动的通知,当你修改代码,删除应用,当你再次运行app,它还是会在横幅上面弹出推送,尼玛怎么搞都删除不了,近乎崩溃了,开始以为是ios7的Bug,苹果爹自ios7之后各种bug曾出不穷,不过最后冷静思考了一下,有木有可能App本地的推送是设置系统里面,所以你在app删除本地推送的代码都没办法取消推送,于是终于给我找到了一个 cancelAllLocalNotifications方法,尼玛,蛋疼的本地推送终于不见了...狗皮膏药般的恶魔终于不见了.

这个是产生本地推送的一个本地通知,一旦你运行它,那么恭喜,你删除app,修改代码,再安装,横幅就一直尼玛的弹呀弹...                      

     UILocalNotification *notification = [[UILocalNotification alloc] init];

    

    //设置10秒之后

    

    NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10];

    

    if (notification != nil) {

        

        // 设置推送时间

        

        notification.fireDate = pushDate;

        

        // 设置时区

        

        notification.timeZone = [NSTimeZone defaultTimeZone];

        

        // 设置重复间隔

        

        notification.repeatInterval = kCFCalendarUnitDay;

        

        // 推送声音

        

        notification.soundName = UILocalNotificationDefaultSoundName;

        

        // 推送内容

        

        notification.alertBody = @"推送内容";

        

        //显示在icon上的红色圈中的数子

        

        notification.applicationIconBadgeNumber = 1;

        

        //设置userinfo 方便在之后需要撤销的时候使用

        

        NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"];

        

        notification.userInfo = info;  

        

        //添加推送到UIApplication       

        

        UIApplication *app = [UIApplication sharedApplication];  

        

        [app scheduleLocalNotification:notification];

怎么才能取消这种流氓行为呢?只需要3行代码,世界瞬间清净了...顺带删除掉那个1的小红点

UIApplication *app = [UIApplication sharedApplication];
app.applicationIconBadgeNumber = 0;
[app cancelAllLocalNotifications];



 

 

你可能感兴趣的:(ios)