2010-10-24 9 views
1

Afin de mesurer la durée pendant que mon application est en cours d'exécution, ainsi que le temps qui s'est écoulé pendant que mon application était inactive en arrière-plan, j'ai besoin d'une horloge de référence qui ne soit pas modifiée par l'utilisateur. horloge de calendrier. Je ne peux pas compter sur NSDate parce que cela peut être changé par l'utilisateur lorsque mon application est en arrière-plan (et non, l'interception des notifications liées à ces changements d'horloge est exagérée pour mes besoins).iOS: Comment mesurer le temps passé, indépendamment des changements d'horloge et de fuseau horaire?

Ce que je besoin est une fonction telle que « secondes depuis démarrage du système d'exploitation ». Mac OS offre de telles fonctions (Ticks et Microsecondes), mais qu'en est-il d'iOS?

Répondre

2

#include <mach/mach_time.h> dans votre fichier source. Remplacez tous les appels à clock_gettime(CLOCK_MONOTONIC, &timespec_t) par des appels à mach_absolute_time().

-3
+0

Ahh. mach_absolute_time() - oui, ça marche. Merci! –

+0

Euh - mes propres tests montrent, cependant, que le temps n'est pas très précis: après 60 secondes réelles, cette fonction m'a seulement indiqué que 59s étaient passés (après 120s il était 118s, et ainsi de suite). Soupir. Pas critique pour ma tâche actuelle mais je me demande toujours ce qui se passe là-bas et pourquoi nous ne pouvons pas trouver une référence de temps précise sur iOS. –

+1

Le lien est désuet. – mohamede1945