web-dev-qa-db-ja.com

iPhoneで60秒ごとにメソッドを呼び出す

GKSessionを作成し、そのオブジェクトが作成されると、デバイスの可用性の検索を開始します。

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

60秒ごとにこのメソッドを呼び出したいのですが、どうすればよいですか?

33

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");
}
94
Jhaliya

NSTimerをscheduleWithTimeIntervalに設定すると、すぐに呼び出されます。使用できます

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

次のコードを使用します。

 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

スウィフト3:

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

スケジュール方式を使用できます...

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

これを使用して上記の関数を呼び出すことができます...

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

Swift 5.

var timer = Timer.scheduledTimer(timeInterval: 60.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)

@objc func updateTimer() {
   print("1 min passed")
}
0
GSK