2011-05-26 5 views
3

quelqu'un sait ou peut fournir quelques exemples de code relatif à la méthode « de timeIntervalSinceNow » ...Temps de mesure Intervalle Depuis maintenant

je besoin de quelque chose ... time2 (quand app eneters premier plan) - time1 (lorsque l'application entre fond) = temps3 (la différence dans les temps) ... c'est ainsi que je peux utiliser ce nombre (pref en secondes) pour calculer le temps que j'ai perdu pendant que l'application était en arrière-plan !!

J'ai essayer d'essayer de créer les objets de date, recevoir l'objet et l'affichage/utilisation dans une étiquette ....

Répondre

4

timeIntervalSinceNow vous indique le décalage d'un NSDate de l'heure actuelle. Vous voulez timeIntervalSinceDate::

NSDate *appEnteredForeground = ...; 
NSDate *appEnteredBackground = ...; 

NSTimeInterval difference = [appEnteredBackground timeIntervalSinceDate: appEnteredForeground]; 
+0

il ne cesse de dire « Unus variable ed 'différence' "Je ne sais pas comment obtenir la valeur de la différence et le mettre dans une étiquette. btw devrais-je faire cela dans le délégué ?? merci beaucoup pour l'aide mec !! – myles

+3

Il semble que vous deviez prendre du recul et apprendre les bases de C et d'Objective-C avant de plonger tête baissée dans la conception de l'interface utilisateur. :) –

4

Vous pouvez calculer la différence entre deux dates avec la méthode timeIntervalSinceDate::

//When app enters background: 
self.backgroundDate = [NSDate date]; //this should be a property 
//... 
//When the app comes back to the foreground: 
NSTimeInterval timeSpentInBackground = [[NSDate date] timeIntervalSinceDate:self.backgroundDate]; 

NSTimeInterval est tout simplement un typedef pour double, il est mesuré en secondes. [NSDate date] instancie un objet NSDate avec la date et l'heure actuelles.

+0

comment puis-je créer une propriété pour backgroundDate ?? – myles

+0

[Le langage de programmation Objective-C - Propriétés déclarées] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html%23//apple_ref/doc/uid/TP30001163-CH17) – omz

4

En fait, pour répondre à votre question initiale, myles, vous pouvez utiliser timeIntervalSinceNow. Dans la déclaration ci-dessous, inputDate a été initialisé en tant NSDate et mis à une date (vous pouvez juste essayer [NSDate *inputDate = [NSDate date]; de fixer la date à la date et l'heure.

NSTimeInterval timeToAlert =[inputDate timeIntervalSinceNow]; 

La ligne suivante est un moyen de mettre qui NSTimeInterval dans une chaîne.

NSMutableString *timeinterval = [NSMutableString string]; 
[timeinterval appendFormat:@"%f",timeToAlert]; 

Enfin, la classe déléguée d'application est généralement où le code peut être écrit pour gérer à venir dans et hors de fond. Bonne chance!