NSDateFormatter.dateFromString gibt nach dem iOS9-Upgrade null zurück

8

Eine meiner Apps hat ein Problem, nachdem sie auf einem Gerät ausgeführt wurde, das gerade auf iOS9 aktualisiert wurde (Ziel der App ist 8.1).

Die App funktioniert gut vor iOS9, aber nach dem NUR Upgrade auf iOS9 auf dem Gerät passiert das folgende Problem.

Die Variable 'anObsDate' gibt jetzt null zurück. Ich habe keine Idee warum. Es scheint, dass das Standalone-Upgrade von iOS9 auf dem Host-Gerät dieses Problem ausgelöst hat.

%Vor%

Wenn ich die App mit dem folgenden Debug ausführen, haben wir diese Ausgabe:

%Vor%

Ich stelle meinen Formatierer wie folgt ein:

%Vor%

Noch einmal, um dies klarzustellen: Wenn ich meine App auf einem vor iOS9-Gerät austrage, funktioniert alles einwandfrei, und dateFromString gibt ein NSDate zurück. Nach dem Upgrade auf iOS9 gibt dateFromString null zurück.

Irgendwelche Vorschläge?

Danke.

    
ack 19.09.2015, 07:14
quelle

2 Antworten

6

Offenbar hat sich NSDateFormatter im Verhalten in iOS 9 so geändert, dass einzelne in Anführungszeichen gesetzte Zeichen im Datumsformat genau mit den Zeichen in der Zeichenfolge übereinstimmen müssen. Zuvor würde es jedes Zeichen akzeptieren (durchsucht die Dokumente, aber konnte keine Erwähnung dieser Änderung finden).

Der Timestamp-Zeichenfolge fehlt das "T", das im Datumsformat definiert ist. Versuchen Sie, Ihr Datumsformat zu ändern:

%Vor%

Ihre andere Option wäre das Hinzufügen des "T" in die Timestamp-Zeichenfolge:

%Vor%

Dies sollte abwärtskompatibel mit früheren Versionen von iOS sein.

    
ospr 19.09.2015, 14:49
quelle
3

Das ist mein Problem gelöst. Sie können es auch verwenden.

In Ziel C:

%Vor%

In Swift:

%Vor%     
Prashant Aggarwal 20.01.2016 08:32
quelle

Tags und Links