Sto riscontrando un problema con NSDateFormatter che non funziona sul dispositivo di un utente (restituendo nil quando si analizza una stringa) e funziona perfettamente quando viene eseguito localmente (nel simulatore o in il mio dispositivo).Comportamento incoerente con NSDateFormatter su due dispositivi diversi
Sto cercando di escludere ciò che potrebbe causare una differenza in questo comportamento. Il mio primo pensiero è stato il locale, ma ho provato a impostarlo esplicitamente per garantire che lo stesso locale sia sempre usato, ma non fa differenza.
Ecco il codice:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
[locale release];
NSDate *theDate = [dateFormatter dateFromString:dateString];
NSLog(@"PARSING DATE %@ AS %@", dateString, theDate);
Sul dispositivo in mancanza, ottengo:
PARSING DATE 2010-11-28T20:30:49-0000 AS (null)
Ma a livello locale ottengo:
PARSING DATE 2010-11-28T20:30:49-0000 AS 2010-11-28 20:30:49 +0000
Questo mi sta facendo impazzire, sono Mi manca qualcos'altro?
Sto eseguendo 4.2 localmente (simulatore) e sul mio dispositivo (un iPhone 4). Il dispositivo guasto è un 3GS in esecuzione 4.2.1.
Qualsiasi idea sarebbe molto apprezzata!
Dato che hai impostato in modo esplicito la stringa di formato, hai provato a rimuovere il codice di impostazione locale? – Costique
Il dispositivo ha l'impostazione "24 ore su 24" attivata? Vedi [Apple QA1480] (http://developer.apple.com/library/ios/#qa/qa2010/qa1480.html) per maggiori informazioni. – Anna
Sì, ho provato questo senza le impostazioni internazionali impostate come sopra. –