アプリの起動時にメソッドを呼び出し、5秒ごとに同じメソッドを呼び出す必要があります。
私のコードはかなり単純です:
// Call the method right away
[self updatestuff:nil]
// Set up a timer so the method is called every 5 seconds
timer = [NSTimer scheduledTimerWithTimeInterval: 5
target: self
selector: @selector(updatestuff:)
userInfo: nil
repeats: YES];
タイマーにはオプションがあり、すぐにトリガーされ、その後5秒ごとにトリガーされますか?
NSTimer
の-fire
、[timer fire];
はあなたが探しているものです。
これにより、タイマーが呼び出され、すぐにタイマーが呼び出され、遅延時間が解消されます。
タイマーをスケジュールして、同じコード行ですぐにイベントを発生させることはできません。したがって、2行のコードでそれを行う必要があります。
まず、タイマーをスケジュールしてから、すぐにタイマーで「fire」を呼び出します。
timer = [NSTimer scheduledTimerWithTimeInterval: 5
target: self
selector: @selector(updatestuff:)
userInfo: nil
repeats: YES];
[timer fire];
火災が呼び出されると、タイマーが実行されたためにタイマーの起動を待機する時間間隔がリセットされ、その後、指定された間隔(この場合は5秒ごと)で実行され続けます。
Swiftの場合:
timer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(foo), userInfo: nil, repeats: true)
timer.fire()
タイマーを初期化して、同じ行で起動できます。
[(checkStatusTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(checkStatusTimerTick:) userInfo:nil repeats:YES]) fire];