【发布时间】:2018-11-13 03:41:13
【问题描述】:
我正在尝试制作提醒应用,但我很难为提醒设置开始日期。我可以使用下面的代码使本地通知工作。使用此代码,我可以在每个星期二在用户设置的时间(由“小时”和“分钟”表示)获得本地通知。
if tuesdayIsChecked == true {
AlarmSupportFileX.tuesdaySelectedBool = true
hour = hourDateFormatter.string(from: datePicker.date)
minute = minuteDateFormatter.string(from: datePicker.date)
var dateComponents = DateComponents()
dateComponents.weekday = 3
dateComponents.hour = Int(hour)
dateComponents.minute = Int(minute)
print(dateComponents)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let requestIdentifier = "\(randomGeneratedString)Tuesday"
let request = UNNotificationRequest(identifier: requestIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: { error in
//Handle error
})
}
我的问题是我只希望它在用户选择的日期触发。 示例:如果我在 2018 年 11 月 12 日(星期一)使用上面的代码,则会在 2018 年 11 月 13 日(星期二)和随后的所有星期二触发通知。
假设用户选择在星期二触发警报(dateComponents.weekday = 3)。如果用户在 11 月 12 日(星期一)设置通知并且他们选择了 11 月 25 日(星期日)的开始日期,我希望它只显示11 月 27 日(星期二)和随后的所有星期二通知。我怎样才能做到这一点?
【问题讨论】: