161 votes

Obtenir le temps écoulé (Objective-c)

Il me faut du temps entre deux événements: par exemple entre l'apparition de UIView et la première réaction de l'utilisateur.

273voto

Can Berk Güder Points 39887
 NSDate *start = [NSDate date];
// do stuff...
NSTimeInterval timeInterval = [start timeIntervalSinceNow];
 

timeInterval est la différence entre le début et maintenant, en secondes, avec une précision inférieure à la milliseconde.

239voto

Senseful Points 11193

Vous ne devriez pas compter sur [NSDate date] pour le chronométrage, puisqu'il peut la sur - ou sous-estimer le temps écoulé. Il y a même des cas où votre ordinateur va apparemment à voyager dans le temps depuis le temps écoulé sera négatif! (E. g. si l'horloge déplacé vers l'arrière pendant le chronométrage.)

Selon Aria Haghighi dans la section "Advanced iOS Geste de Reconnaissance de la" conférence de l' Hiver 2013 Stanford iOS cours (34:00), vous devez utiliser CACurrentMediaTime() si vous avez besoin d'un intervalle de temps précis.

CFTimeInterval startTime = CACurrentMediaTime();
// perform some action
CFTimeInterval elapsedTime = CACurrentMediaTime() - startTime;

La raison en est qu' [NSDate date] synchronise sur le serveur, de sorte qu'il pourrait conduire à "l'heure de synchronisation hoquet", ce qui peut conduire à de très difficiles à repérer les bugs. CACurrentMediaTime(), d'autre part, est un dispositif de temps ne change pas avec ces synchronisations.

Vous devrez ajouter le QuartzCore cadre de votre cible.

26voto

Marco Lazzeri Points 1191

Utilisation du `` méthode

est juste un , définir `` comme ceci :

15voto

Wayne Uroda Points 1650

Pour tout le monde à venir ici à la recherche d’une implémentation getTickCount() pour iOS, voici le mien après rassembler diverses sources :

8voto

Jason Coco Points 52303

Pour percise temporelle (comme GetTickCount), également jeter un oeil à mach_absolute_time et cette pomme Q & A: http://developer.apple.com/qa/qa2004/qa1398.html.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X