2009-03-17 6 views
1

J'écris un petit programme pour afficher l'heure actuelle sur iPhone (apprentissage: D). Je suis tombé sur cette confusion.Quelles sont les approches pour écrire une application d'horloge simple?

Appelez currentSystemTime (par exemple: stringFromDate:) toutes les secondes, l'analyser et imprimer l'heure à l'écran est bon?

Serait-il plus efficace d'appeler une fois la routine ci-dessus et de mettre à jour manuellement la seconde analysée à chaque fois que vous utilisez votre minuteur. (Dites comme ++ secondes, écrivez quelques boucles if pour ajuster les minutes et les heures). La deuxième approche entraînera-t-elle une désynchronisation avec l'heure réelle? si la charge du processeur augmente ou alors? Considérant tout cela, ce sera la meilleure approche.

Répondre

0

Je laisserais tomber les secondes totalement et j'imprimerais juste le reste du temps, alors il suffit de l'analyser une fois par minute. C'est si vous voulez une horloge plutôt qu'un chronomètre. Sérieusement, je ne peux pas me souvenir de la dernière fois que j'ai regardé une horloge sans secondes et j'ai pensé "Gosh, je ne sais pas si c'est 12:51:00 ou 12:51:59 Comment vais-je prendre mon prochain rendez-vous?").

Si vous voulez vous assurer que vous êtes relativement précis à mettre à jour la minute, procédez comme suit:

  • Obtenez le temps plein (HHMMSS).
  • Affichage jusqu'à la résolution de la minute (HH: MM). Soustrayez SS de 61 et dormez pendant plusieurs secondes.
  • Retournez à cette première étape.
1

Je doute que le surdébit d'interrogation de l'heure du système sera perceptible par rapport aux cycles CPU utilisés pour mettre à jour l'affichage. Configurer un NSTimer à déclencher, mais souvent que vous voulez mettre à jour l'affichage de l'horloge, et mettre à jour votre affichage de cette façon. Ne vous inquiétez pas de l'optimiser jusqu'à ce que l'application fonctionne.

Questions connexes