如何在Swift 3中使用组件创建日期

时间:2016-10-14 17:22:13

标签: ios swift

我在一个月和一个月内存储了一天。我正在创建通知,我需要做一些计算,然后创建一个日期。我卡在了我粘合的地方。所有部分都放入Date所以我可以创建fireDate。

我不确定这是如何工作的,尽管我试图用Apple文档来解决这个问题。我收集的时候需要DateComponents,但后来我不知道如何继续。只有init()方法需要这么多参数。

现在我的代码非常少:

let calendar = Calendar(identifier: .gregorian)
let components = DateComponents()
calendar.date(from: components)

有人可以帮我解释一下吗? 非常感谢。

1 个答案:

答案 0 :(得分:2)

听起来您想要创建在特定日期触发的通知。您需要从UNCalendarNotificationTrigger创建DateComponents。因此,给定日期,您需要从该日期创建DateComponents对象。

// Assuming your UIDatePicker is named `datePicker`
let triggerDate = datePicker.date
let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: triggerDate)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

以下是在特定日期发布通知所需的完整代码:

let content = UNMutableNotificationContent()
content.title = "Notification Title"
let triggerDate = datePicker.date
let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: triggerDate)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)
let request = UNNotificationRequest(identifier: nil, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request)