不断设置新的本地通知 - ios

时间:2017-12-07 04:19:25

标签: ios uilocalnotification

我正致力于模拟警报。

为了做到这一点,我试图在某些条件为真的情况下每X秒发送一个新的本地通知,并在某些条件为假时停止(当用户取消警报时)

我有一个Set按钮和一个Stop按钮。

以下代码用于按下Set按钮时:

@IBAction func setNotification(_ sender: Any) {
//        timeEntered = time.text!
//        let hrMin = timeEntered.components(separatedBy: ":");
        let content = UNMutableNotificationContent()
        content.title = "How many days are there in one year"
        content.subtitle = "Do you know?"
        content.body = "Do you really know?"
        content.badge = 1
        content.sound = UNNotificationSound(named: "alarm.aiff");

        while (repeatNotifications) {
            trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false);

            let request = UNNotificationRequest(identifier: "timerDone", content: content, trigger: trigger)

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

按下Stop按钮时:

@IBAction func stopRepeat(_ sender: Any) {
    repeatNotifications = false
    UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
    UNUserNotificationCenter.current().removeAllDeliveredNotifications()
}

现在,当我按下Set按钮时,它处于按下模式(颜色发生变化),除了主页按钮。此外,没有设置本地通知。

任何想法如何实现这一目标?

tl; dr:如何在每个X秒设置新的本地通知,直到按下某个按钮

1 个答案:

答案 0 :(得分:4)

你的状况比你想象的更快。它可能通过创建对象数来阻塞您的通知类。请使用计时器每5秒运行一次以发送通知。 您可以使用工具工具查看问题。