DateFormatter kann plötzlich keine 24h Uhr mehr konvertieren?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Qvex23 schrieb:

    Im derzeitigen Quellcode ist der Wert aber force unwrappred, weil ich sonst anstellevon "01.01.2001 18:59" ein "Optional("01.01.2001 18:59")" als String bekommen. Wer auch immer sowas braucht, für mich macht es gerade irgendwie keinen sinn solch einen String zu erhalten.
    Du erhältst von der Methode date(from:) keinen String, sondern ein Optional-Date. Deshalb musst du prüfen, ob du den Rückgabewert unwrappen kannst oder nicht.
  • Michael schrieb:

    Qvex23 schrieb:

    Im derzeitigen Quellcode ist der Wert aber force unwrappred, weil ich sonst anstellevon "01.01.2001 18:59" ein "Optional("01.01.2001 18:59")" als String bekommen. Wer auch immer sowas braucht, für mich macht es gerade irgendwie keinen sinn solch einen String zu erhalten.
    Du erhältst von der Methode date(from:) keinen String, sondern ein Optional-Date. Deshalb musst du prüfen, ob du den Rückgabewert unwrappen kannst oder nicht.
    Hm, laut Doku soll man ein Date oder nil erhalten und kein Optional-Date. Ist die Doku oder die Implementierung jetzt falsch? ?(
  • Michael schrieb:

    Qvex23 schrieb:

    Im derzeitigen Quellcode ist der Wert aber force unwrappred, weil ich sonst anstellevon "01.01.2001 18:59" ein "Optional("01.01.2001 18:59")" als String bekommen. Wer auch immer sowas braucht, für mich macht es gerade irgendwie keinen sinn solch einen String zu erhalten.
    Du erhältst von der Methode date(from:) keinen String, sondern ein Optional-Date. Deshalb musst du prüfen, ob du den Rückgabewert unwrappen kannst oder nicht.
    :cursing: Ohmann, jetzt habe ich schon meine functions durcheinander geworfen. Natürlich bekomme ich ein date von einem String (im dem dämlichen SQLite Format). Sorry.
    @MCDan hat recht, man bekommt ein Date oder ein nil und das war auch mein Problem.
  • MCDan schrieb:

    Michael schrieb:

    Qvex23 schrieb:

    Im derzeitigen Quellcode ist der Wert aber force unwrappred, weil ich sonst anstellevon "01.01.2001 18:59" ein "Optional("01.01.2001 18:59")" als String bekommen. Wer auch immer sowas braucht, für mich macht es gerade irgendwie keinen sinn solch einen String zu erhalten.
    Du erhältst von der Methode date(from:) keinen String, sondern ein Optional-Date. Deshalb musst du prüfen, ob du den Rückgabewert unwrappen kannst oder nicht.
    Hm, laut Doku soll man ein Date oder nil erhalten und kein Optional-Date. Ist die Doku oder die Implementierung jetzt falsch? ?(
    Aus der verlinkten Doku:

    Declaration
    func date(from string: String) -> Date?
    Das Date? am Ende ist der Rückgabetyp: Optional-Date
  • Nein, du bekommst ein Optional-Date zurück bzw. korrekt für den Compiler ausgedrückt ein Optional<Date>.

    Die Schreibweise Date? ist nur „syntactic sugar“ für Optional<Date>. Die Deklaration der Methode date(from:) kann man auch so schreiben:

    func date(from string: String) -> Optional<Date>

    Die Methode gibt nur zwei mögliche case Fälle zurück:
    • Optional.some(dateInstanz) im Erfolgsfall und das kann man dann „unwrappen“
    • Optional.none im Fehlerfall (syntactic sugar dafür ist nil)
    Der Typ Optional<T> ist ein generischer enum mit den beiden cases .none und .some(T).