2009-08-21 16 views
1

Je me demande s'il y a un moyen de créer un compte à rebours à partir d'un moment donné. Par exemple, disons que je veux que cette minuterie dure une heure. Il y aura un NSTextField qui montrera le temps restant (25 minutes), et mettra automatiquement à jour chaque minute à la nouvelle valeur. Et puis, quand une heure est finalement passée, elle va fonctionner. J'ai vu des gens suggérer NSTimer et NSDate pour cela, mais je me demande ce que vous pourriez tous suggérer.Compte à rebours dans Cocoa

Merci!

EDIT: Mon code actuel (timeInstance est une variable d'instance):

- (void)awakeFromNib: 
{ 
timeInstance = [[NSDate date] addTimeInterval:(10 * 60)]; 
[timeInstance retain]; 

[timer invalidate]; 
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timer:) userInfo:NULL repeats:YES]; 
} 

- (void)timer:(NSTimer *)myTimer 
{ 
NSDate *now = [NSDate date]; 
// Compare 
} 

Répondre

1

NSTimer et NSDate sons tout à fait raisonnable.

EDIT: En note, il peut être judicieux d'augmenter la fréquence à l'approche de l'heure cible; vous permettant de passer de l'affichage de l'heure à l'affichage de la minute au deuxième affichage.

+0

Avez-vous des liens qui pourraient décrire comment créer l'effet de compte à rebours? Il semble que la plupart des gens ne parlent que de compter. – PF1

+0

Le décompte est comme un compte à rebours. Vous prenez la différence entre la date cible et la date actuelle. –

+0

Pourriez-vous jeter un oeil à mon code (dans le message principal) ... Je ne peux pas savoir quoi faire ensuite. – PF1