我创建一个本地通知,它应该每天上午9点来。我以前也这么做过,而且成功了。由于某种原因,它会产生以下错误.
请告诉我如何正确地解决这个问题!
let date = Date()
var triggerDate =
Calendar.current.dateComponents([.hour,.minute,.second,], from:
date)
triggerDate.hour = 9
triggerDate.minute = 0
triggerDate.second = 0
let request = UNNotificationRequest(identifier: "Oneindifer",
content: content, trigger: triggerDate) /*ERROR - Cannot convert
value of type 'DateComponents' to expected argument type
'UNNotificationTrigger?'*/发布于 2019-10-25 16:03:08
您需要做的是在UNNotificationTrigger参数中传递一个trigger。您目前正在传递DateComponents。尝试用以下代码替换代码:
let date = Date()
var triggerDate = Calendar.current.dateComponents([.hour,.minute,.second,], from: date)
triggerDate.hour = 9
triggerDate.minute = 0
triggerDate.second = 0
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false)
let request = UNNotificationRequest(identifier: "identifier", content: content, trigger: trigger)Alternatively:看一下这个UIViewController扩展的答案。它是一个让您轻松创建UNNotificationRequest:Send a local notification when timer is up的函数。
在您的例子中,您可以使用上面链接的答案中的扩展名,如:self.createLocalNotification(title: "9 hours have passed", hours: 9)
发布于 2019-10-25 16:09:28
这是工作!
let date = Date()
var triggerDate =
Calendar.current.dateComponents([.hour,.minute,.second,], from:
date)
triggerDate.hour = 9
triggerDate.minute = 0
triggerDate.second = 0
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false)
let request = UNNotificationRequest(identifier: "Oneindifer",
content: content, trigger: trigger)https://stackoverflow.com/questions/58561877
复制相似问题