web-dev-qa-db-fra.com

appeler une méthode toutes les 60 secondes sur un iPhone

J'ai créé une GKSession et lors de la création de son objet, la recherche de disponibilité des

 - (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state {

Je souhaite appeler cette méthode toutes les 60 secondes. Que dois-je faire?

34
Chatar Veer Suthar

Utilisez NSTimer 

NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 60.0 target: self
                                   selector: @selector(callAfterSixtySecond:) userInfo: nil repeats: YES];

Après chaque 60.0 seconde, iOS appellera la fonction ci-dessous 

-(void) callAfterSixtySecond:(NSTimer*) t 
{
    NSLog(@"red");
}
94
Jhaliya

Une fois que vous avez défini NSTimer sur scheduleWithTimeInterval, il l’appelle immédiatement . Vous pouvez utiliser 

  [self performSelector:@selector(doSomething) withObject:nil afterDelay:60.0f];
13
Gal Marom

Utilisez le code suivant:

 NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval: 60.0 target: self
                               selector: @selector(timerFired:) userInfo: nil repeats: YES];

 - (void)timerFired:(NSTimer*)theTimer{
 if(condition){
       [theTimer isValid]; //recall the NSTimer
       //implement your methods
  }else{
      [theTimer invalidate]; //stop the NSTimer
 }
}
3
Mannam Brahmam

Swift 3:

Timer.scheduledTimer(withTimeInterval: 60, repeats: true, block: { (timer) in 
print("That took a minute")
})
2
J. Doe

Vous pouvez utiliser la méthode schedular ...

-(void) callFunction:(CCTime)dt 
{
    NSLog(@"Calling...");
}

vous pouvez appeler la fonction ci-dessus en utilisant cette ...

[self schedule:@selector(callFunction:) interval:60.0f];
0
Anish