在IOS7.1下,如果本地通知是通过 presentLocalNotificationNow 这个函数显示出来的,那么 cancelLocalNotification 将不会起任何作用,除非是通过 scheduleLocalNotification 显示的,fireDate这个属性可以设置成当前时间点往后延时秒。
在IOS6及以下版本:
在调用[[UIApplication sharedApplication cancelLocalNotification:notification]后接着调用 [[UIApplication sharedApplication presentLocalNotificationNow:notification],因为有动画的缘故,cacel和present都会持续一段时间,所以会造成两个通知都存在的情况。如果系统限制了通知的数量,那么当动画结束时,通知数量会比最大数量少了一个,所以要确保cancel动画完成之后再present。