2010-04-04 6 views
2

J'ai été perplexe par le code ci-dessous. Je passe une date de chaîne à un UIDatePicker qui semble fonctionner sur la plupart des appareils, mais sur certains, il bloque l'application.mis erreur date sur uidatepicker

est ici le code

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"HH:mm"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
[timePicker setDate:date]; 
[dateFormat release]; 

J'ai une fonction qui passe la variable « chaîne_date », comme suit, dateStr = @"0:0"; je ne vois pas ce qui ne va pas - comme cela fonctionne pour moi! (iphone 3.1.3) mais il ne fonctionne pas pour mon testeur (ipod touch 3.1.3)

Quelqu'un peut-il voir quelque chose de mal avec le code?

Merci beaucoup. des idées?

Répondre

1

Probablement un problème de locale. Essayez de définir un environnement local commun pour le formateur de date, par exemple,

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
[dateFormat setLocale:usLocale]; 
[usLocale release]; 
+0

cela semble l'avoir résolu. Merci à tous pour les réponses. –

0

Vous définissez votre dateFormat à

[dateFormat setDateFormat:@"HH:mm"]; 

encore vous passez chaîne_date comme dateStr = @"0:0";?

Essayez de passer à dateStr = @"00:00"; qui fait conforme à votre format de formatter

0

Tous les lieux de 12 heures à minuit définissent comme 12:00. L'horloge de 24 heures (également appelée heure militaire) a 00:00 défini comme minuit.

Dans votre exemple, vous "forcer" une chaîne avec un format potentiellement inconnu sur votre UIDatePicker.

Vérifiez vos paramètres régionaux et spécifiez toujours les paramètres régionaux correspondant à la représentation de la chaîne de caractères, en_US, da_DK, et cetera.