2010-10-03 7 views
0

J'ai une application que je suis mise à jour à OS4. En cela, j'utilise un sélecteur de temps. De cela, je veux obtenir une heure et une minute en tant qu'intégrateur. Voici le code que j'utilisé précédemment pour cette ...Problème de sélecteur de temps avec OS4?

NSDate *selected = [timePicker date]; 

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit| NSMinuteCalendarUnit |NSSecondCalendarUnit; 


NSDateComponents *compsDur = [gregorian components:unitFlags fromDate:selected]; 
int hDur = [compsDur hour]; 
int mDur = [compsDur minute]; 
int sDur = [compsDur second]; 

[gregorian release]; 

Maintenant, tout fonctionnait très bien ici. Mon problème est que lorsque je mets à jour à OS4 si je change les paramètres de mon temps de mon téléphone du Royaume-Uni aux États-Unis, je reçois une valeur aléatoire non pas ce que l'utilisateur a entré. Pour vous donner un exemple précis, sur l'heure du Royaume-Uni je fixe l'heure pour 1 minute, j'obtiens une valeur de retour pour mDur comme 1. Si je change alors mon téléphone à l'heure de New York je reçois 19 heures et 6 minutes? Que se passe-t-il?

Répondre

1

Je pense que cela pourrait être lié à un changement sans papier au UIDatePicker dans iOS4 où la valeur par défaut (ce que je pense est) GMT que le fuseau horaire.

Vous pouvez définir le fuseau horaire du UIDatePicker à la zone horaire du système afin que l'utilisateur obtient l'expérience attendue.

yourDatePicker.timeZone = [NSTimeZone systemTimeZone]; 
+0

Merci, cela ressemble certainement au problème mais votre ligne de code ne fait rien? Où dois-je déclarer cela? Je viens de le mettre au-dessus de NSDate * selected = [date timePicker]; et je ne le vois pas faire quelque chose :-( – user157733

+0

je le fais dès que je mets le UIDatePicker dans ma méthode de viewDidLoad du UIView –

+0

cool qui fonctionne grâce, il met mon sélecteur à une valeur aléatoire si, connaissez-vous comment le régler à 0min 0hour? – user157733