【发布时间】:2017-03-12 22:36:24
【问题描述】:
所以我目前正在构建一个日程安排应用程序,并且我正在尝试创建一个本地通知,以便在每周特定日期的特定时间触发。所以我要做的第一件事是获取事件开始时间的日期值,然后从开始时间值中减去 5 分钟,然后安排通知。以前很容易只需键入:
notification.repeatInterval = CalendarUnit.WeekOfYear 但现在该命令在 Swift 3 中已被弃用,是的,所以我找到的唯一方法是:
let someMinutesEarlier = Calendar.current.date(byAdding: .minute, value: -5, to: startTimePicker.date)
let contentOfNotification = UNMutableNotificationContent()
let interval = someMinutesEarlier?.timeIntervalSinceNow
contentOfNotification.title = "Event starting"
contentOfNotification.body = "Some notes"
contentOfNotification.sound = UNNotificationSound.default()
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: interval!, repeats: true)
let request = UNNotificationRequest.init(identifier: notificationIdentifier, content: contentOfNotification, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request) { (error) in
print(error as Any)
}
但这只会安排一次通知(无论重复布尔值设置为true),因为 someMinutesEarlier 中的年份......或者它可能是别的什么?有什么想法吗?
【问题讨论】:
-
为什么不使用 UNCalendarNotificationTrigger ?
-
您是针对 ios10 之前的版本还是仅针对 ios10 的版本?如果您希望您的应用程序也能在早于 10 的版本上运行,我可能会暂时坚持使用已弃用的方法。否则,您将需要编写两个版本并使用
available
标签: ios swift notifications local repeat