2016-10-14 6 views
0

Ich habe den Tag in einem Monat und Zeit gespeichert. Ich erstelle eine Benachrichtigung und muss eine kleine Rechnung erstellen und dann ein Datum erstellen. Ich steckte an dem Teil, wo ich alle Teile in Date "kleben", so kann ich FireDate erstellen.So erstellen Sie ein Datum aus Komponenten in Swift 3

Ich bin nicht wirklich sicher, wie das funktioniert, obwohl ich versuche, es mit Apple-Dokumentation herauszufinden. Wie ich gesammelt habe, brauche ich DateComponents, aber dann weiß ich nicht weiter. Es gibt nur eine init() Methode, die so viele Parameter benötigt.

Denn jetzt habe ich sehr wenig Code:

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

jemand kann mir bitte klären das? Vielen Dank.

+0

Was Ihre Eingabe ist und was wollen Sie als Ausgang? –

+0

Also, ich habe 'Int' als Tag in einem Monat und ich habe Daten vom Date Picker (ich benutze es um Zeit zu bekommen). Ich muss ein Datum aus diesen separaten Daten erstellen. Ich bin mir nicht sicher, wie ich das erreichen soll. – Kira

+0

Können Sie die Ausgabe posten, die Sie von Ihrer Datumsauswahl erhalten. Nur ein Tag als Int kann Ihnen nicht helfen, ein Datum zu erstellen –

Antwort

1

Es klingt so, als ob Sie eine Benachrichtigung erstellen möchten, die zu einem bestimmten Datum ausgelöst wird. Sie müssen einen UNCalendarNotificationTrigger von DateComponents erstellen. Wenn Sie also ein Datum angeben, müssen Sie ein DateComponents Objekt von diesem Datum erstellen.

// 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) 

Dies ist der komplette Code, den Sie brauchen würden, eine Benachrichtigung zu einem bestimmten Zeitpunkt zu feuern:

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) 
+0

Diese Antwort hat wirklich geholfen! Ich habe gerade eine Tageskomponente mit meinem 'Int' verwendet – Kira

Verwandte Themen