вызов метода через каждые 60 секунд в iPhone - PullRequest
34 голосов
/ 15 апреля 2011

Я создал сеанс GKSession и, как только создается его объект, он начинает поиск доступности устройств, так как

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

Я хочу вызывать этот метод через каждые 60 секунд, что мне делать?

Ответы [ 5 ]

94 голосов
/ 15 апреля 2011

Использование NSTimer

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

Через каждые 60.0 секунд iOS будет вызывать следующую функцию

-(void) callAfterSixtySecond:(NSTimer*) t 
{
    NSLog(@"red");
}
13 голосов
/ 13 мая 2014

Как только вы установите NSTimer в scheduleWithTimeInterval, он немедленно вызовет его. Вы можете использовать

  [self performSelector:@selector(doSomething) withObject:nil afterDelay:60.0f];
3 голосов
/ 09 мая 2016

Используйте следующий код:

 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
 }
}
2 голосов
/ 15 июля 2017

Swift 3:

Timer.scheduledTimer(withTimeInterval: 60, repeats: true, block: { (timer) in 
print("That took a minute")
})
0 голосов
/ 15 апреля 2011

Вы можете использовать метод планирования ...

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

Вы можете вызвать вышеуказанную функцию, используя ...

[self schedule:@selector(callFunction:) interval:60.0f];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...