GKSessionを作成し、そのオブジェクトが作成されると、デバイスの可用性の検索を開始します。
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state {
60秒ごとにこのメソッドを呼び出したいのですが、どうすればよいですか?
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");
}
NSTimerをscheduleWithTimeIntervalに設定すると、すぐに呼び出されます。使用できます
[self performSelector:@selector(doSomething) withObject:nil afterDelay:60.0f];
次のコードを使用します。
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:
Timer.scheduledTimer(withTimeInterval: 60, repeats: true, block: { (timer) in
print("That took a minute")
})
スケジュール方式を使用できます...
-(void) callFunction:(CCTime)dt
{
NSLog(@"Calling...");
}
これを使用して上記の関数を呼び出すことができます...
[self schedule:@selector(callFunction:) interval:60.0f];
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")
}