取消本地通知

时间:2016-11-18 09:41:11

标签: ios swift uilocalnotification

我想列出预定的本地通知,以便检查解雇日期,取消好日期。

这就是我添加本地通知的方式:

let notification = UILocalNotification()
notification.fireDate = date
notification.alertBody = message
notification.soundName = UILocalNotificationDefaultSoundName
notification.timeZone = NSTimeZone.defaultTimeZone()

这就是我列出所有通知的方法,以找到好的通知:

for oneEvent in UIApplication.sharedApplication().scheduledLocalNotifications! {
    if date == notification.fireDate {
        app.cancelLocalNotification(notification)
    }
}

问题是我创建了很多通知,scheduledLocalNotifications中始终只有一个通知!

通知被正确触发但我无法检索它们是scheduledLocalNotifications变量。

2 个答案:

答案 0 :(得分:2)

我没有收到你的问题,但我对下面的代码有一些疑问试试这个:

您必须在创建通知后写下此行。

UIApplication.sharedApplication().scheduleLocalNotification(notification)

然后

for oneEvent in UIApplication.sharedApplication().scheduledLocalNotifications! {
    if date == oneEvent.fireDate {
         app.cancelLocalNotification(oneEvent)
    }
}

答案 1 :(得分:1)

如果您使用的是ios 10,可以尝试导入UserNotifications框架(UserNotifications.framework)然后

let center = UNUserNotificationCenter.current()
center.getPendingNotificationRequests(...)

在IOS 10中,Apple转移到新的Notification框架,您仍然可以使用旧方式创建和安排本地通知(sharedApplication.scheduleLocalNotification),但是当您以旧方式处理它们时会出现奇怪的行为(UIApplication.sharedApplication( ).scheduledLocalNotifications)。