使用按钮重置UNTimeIntervalNotificationTrigger

时间:2017-04-13 13:40:29

标签: swift unusernotificationcenter

我尝试重置UNTimeIntervalNotificationTrigger以多次发送通知。我尝试过一些事情,包括:

-Set repeats: true - >这会以某种方式崩溃我的应用程序,给我错误thread 1 signal sigabrt

现在代码的问题(见下文)是我收到错误:Use of unresolved identifier 'trigger'。现在据我所知,这个错误告诉我,我不能使用触发器,因为它设置在一个按钮'功能'它无法找到let trigger

问题:如何使函数resetTimer看到trigger?或者有更好的方法来重置UNTimeIntervalNotificationTrigger吗?

@IBAction func change(_ sender: Any) {
func startTimer() {
        let trigger = UNTimeIntervalNotificationTrigger(timeInterval: TimeInterval(tijd), repeats: false)
        let request = UNNotificationRequest(identifier: bezigheid, content: content, trigger: trigger)

        UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
    }
}

func resetTimer() {
    trigger.invalidate
}

1 个答案:

答案 0 :(得分:0)

首先,这段代码完全不正确。 将函数放在@IBActions中是没有意义的。
这样做:

@IBAction func startTimer(_ sender: Any) {
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: TimeInterval(tijd), repeats: false)
    let request = UNNotificationRequest(identifier: bezigheid, content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}

@IBAction func resetTimer(_ sender: Any) {
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: TimeInterval(tijd), repeats: false)
    trigger.invalidate
}