博主在用swift做一个备忘录APP的过程中遇到一个问题,我为需要提醒的事项设置了localNotification,可以正常实现系统提醒功能,但是如果不点击提醒,而是直接进入程序,那么这个提醒条目将始终存在于系统的通知栏里面,除非用户手动去清除这个提醒通知。(在陌陌APP的回复提醒功能中存在这个问题,相信有些朋友会有体会)
在网上查到的基本都是Objective-C的代码,在Obj-c中可以使用release功能手动消除对应的notification,代码如下:
//localNotification为自定义好的一个提醒实例,将其加入到scheduleLocalNotification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
//释放
[localNotification release];
但是在swift中是没有release方法的,而通过打印scheduleLocalNotification.count,大家可以发现已经显示的提醒条目会被移除出scheduleLocalNotification,那么如何删除掉已经存在于系统通知栏里面的提醒呢?博主最终采用的方法比较便于理解:每次启动程序或者进入前台后,首先cancel掉全部LocalNotification,然后调用