2010-11-10 30 views
0

Je plonge dans le développement iOS et j'essaie de créer un compte à rebours dans l'une de mes vues. J'ai le code NSTimer trouvé pour appeler un sélecteur une fois toutes les 0,04 secondes qui met à jour le UILabel. Là où j'ai des problèmes, c'est avec le formatage de l'heure actuelle (commençant initialement à 00:00). J'ai pensé que la meilleure façon d'y parvenir était d'utiliser la classe NSDate, et les classes associées (NSDateFormatter, NSDateComponents, etc.), mais la manipulation des dates et des formats est vraiment source de confusion et le code devient rapidement difficile à manier. J'espérais qu'il y a des utilisateurs SO qui sont à l'aise avec la classe NSDate qui pourrait m'aider à trouver un moyen simple de calculer l'heure actuelle pour un compte à rebours et de le convertir en NString avec le format 'secondes: millisecondes'.Comment créer un compte à rebours au format secondes: millisecondes?

Je serais heureux de publier ma première tentative du code NSDate sur demande, mais je ne vais pas d'abord parce qu'il est vraiment inutile et gênant :)

Répondre

3

Si vous voulez juste pour afficher le temps écoulé depuis vous avez démarré votre minuterie, vous pouvez stocker la date de début quelque part (par exemple, startDate variable) et calculer l'intervalle de temps en utilisant la date actuelle. Quelque chose comme ce qui suit devrait fonctionner:

NSTimeInterval passed = [[NSDate date] timeIntervalSinceDate: startDate]; 
double intPart; 
double fract = modf(passed, &intPart); 
label.text = [NSString stringWithFormat:@"%d:%.2f", (int)intPart, fract]; 
+0

merci, très simple, je vais essayer! – BeachRunnerFred

+0

espérons que cela fonctionnera :) – Vladimir